【发布时间】:2014-04-10 19:20:40
【问题描述】:
目前我正在研究质数计算器/检查器的解决方案。该算法已经在工作并且非常高效(前 9012330 个素数为 0,359 秒)。这是声明所有内容的上部区域的一部分:
const uint anz = 50000000;
uint a = 3, b = 4, c = 3, d = 13, e = 12, f = 13, g = 28, h = 32;
bool[,] prim = new bool[8, anz / 10];
uint max = 3 * (uint)(anz / (Math.Log(anz) - 1.08366));
uint[] p = new uint[max];
现在我想进入下一个级别并使用 ulong 代替 uint 来覆盖更大的区域(您已经可以看到),我在这里遇到了我的问题:bool-array。 就像每个人都应该知道的那样,bool 的长度只有一个字节,这在创建数组时会占用大量内存......所以我正在寻找一种更资源友好的方式来做到这一点。 我的第一个想法是位数组-> 不是字节!
【问题讨论】: