枚举整数并返回打开的每个位的指数的最快方法是什么?看过一个使用 << 的例子和另一个使用 Math.Pow 的例子。想知道是否还有其他任何东西真的很快。
谢谢。
最佳答案
最快方式?查找表几乎总是最快的方法。构建一个包含 40 亿个条目的 int[][] 数组,每个条目对应一个 int,包含一个包含所需数字的数组。当然,初始化表格需要一些时间,但查找速度会非常快。
我注意到您还没有足够准确地说明“最快”的含义,让任何人都能真正回答这个问题。这是否意味着包括启动时间在内的最快摊销时间,或者假设可以忽略启动成本的边际查找时间?我的解决方案草图采用了后者。
显然,具有 20 亿字节地址空间的 32 位机器将没有足够的地址空间来存储 300 亿字节的数组。给自己一台 64 位机器。如果您希望速度快,则至少还需要安装那么多的物理内存——否则分页会要了您的命。
我当然希望您在每次查找时节省的几纳秒值得购买所有额外的硬件。或者您实际上不想要最快的方式?
:-)
关于c# - 通过打开整数的位来枚举的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838097/