在过去的几周里,我一直致力于制定一个能够使主要螺旋尽可能高效的程序.我研究了多线程以提高程序的速度,现在我遇到了一个新问题.我的素数列表的长度为6400万和零,这个列表占用240MB的内存.因为我使用多处理(总共5个进程),我的脚本最多使用总共1.1GB的ram,如果达到这一点,则返回内存错误.@H_301_2@
关于我如何存储素数的一些背景信息:质数存储在列表中,每次我找到素数时,我将值设置为1(例如:Primes [13] = 1(因为它是素数)和Primes [14] = 0).对我来说这似乎是最好的解决方案,因为列表不会占用大量内存@H_301_2@
经过一些基本的数学计算后,我得出结论,我的素数列表中的每个零或一个占用4个字节(32位)的信息.这似乎是合乎逻辑的,但我想知道是否有办法将零和1存储为单个位,因此它不会占用太多内存.@H_301_2@
提前感谢您的任何答案,
问候,伤害
最佳答案