gpt4 book ai didi

c# - C#中位的快速排列

转载 作者:太空狗 更新时间:2023-10-29 20:35:11 25 4
gpt4 key购买 nike

我正在实现 Charikar's fast search on a locality sensitive hash我正在寻找一种在 C# 中置换位的快速方法(这种方法可以在 MMIX 中的一次操作中完成)。

要求是:

  • 总是小于 64 位,所以表示可以是一个长整数
  • 随机生成一个排列(这可能会很慢,因为它只完成一次)。我可能会使用 Knuth 洗牌。
  • 多次使用生成的排列,所以这需要很快

我知道 Knuth 对此进行了详细介绍,但我想知道是否有任何特定于 .NET/C# 的解决方案。

编辑:我使用的是 .NET 3.5 版。

最佳答案

由于 C# 不提供 Knuth 在 C 中没有的任何位操作指令,因此不存在特定于 .NET/C# 的解决方案。

同时.NET也提供了动态编译,可以帮助你高效的重复shuffle。

什么版本的 .NET?最简单的方法可能是使用 Knuth 的算法并将结果操作编码在 Expression<Func<ulong, ulong>> 中。 , 然后将结果编译为 Func<long, long>代表。

关于c# - C#中位的快速排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com