C# C语言中的快速位置换#
我正在实现并寻找一种在C#中快速排列位的方法(在MMIX中一次操作就可以完成这种事情) 这些要求是:C# C语言中的快速位置换#,c#,algorithm,bit-manipulation,C#,Algorithm,Bit Manipulation,我正在实现并寻找一种在C#中快速排列位的方法(在MMIX中一次操作就可以完成这种事情) 这些要求是: 始终小于64位,因此表示可以是长整数 随机生成一个置换(这可能很慢,因为它只执行一次)。我可能会使用Knuth shuffle 多次使用生成的置换,因此这需要很快 我知道Knuth对此进行了详细的讨论,但我想知道是否有任何特定于.NET/C的解决方案 编辑:我使用的是.NET版本3.5。因为C#没有提供Knuth在C中没有的任何位操作指令,不,没有.NET/C#特定的解决方案 同时,.NET
- 始终小于64位,因此表示可以是长整数
- 随机生成一个置换(这可能很慢,因为它只执行一次)。我可能会使用Knuth shuffle
- 多次使用生成的置换,因此这需要很快
什么版本的.NET?最简单的方法可能是使用Knuth算法,将结果运算编码为
表达式
,然后将结果编译为函数
委托。C#中的位置换如何?你认为慢吗?@JaredPar:我不知道C#中有任何位置换运算符-你能告诉我吗?我怀疑标准操作是否缓慢。问题是,对于给定的置换,找到一系列运算,这些运算将尽快计算置换。谢谢,这似乎是一个明智的解决方案。