当然,儘管是確定了阅读顺序,林枫也没有马上开始。
任何星辰大海那都是遥远的梦想,想要追求遥远的梦想这没什么。
但前提是要在此之前不需要为物质而烦恼。
想想那令人压抑的信用卡帐单,林枫就一个头两大。
林枫现在还得为物质奔波。
“去码头整点薯条.jpg”
林枫记得当时加州大学洛杉磯分校高性能计算实验室可是在第一时间表示他们已经安排超算集群开始验证274207281-1和277232917-1是否是梅森素数了。
怎么这么久还没出结果呢
虽然说漫无目的地去寻找梅森素数挺困难的。
但要通过超级计算机验证一个数是不是梅森素数还真不费劲。
一般来说,要验证274207281-1是否是素数。
直接计算出这个数並检查它是否有其他因数是最容易想到的思路。
但这明显不可行。
像是274207281-1这种超大数的位数太多,如果暴力因式分解挨个试肯定无法在合理的时间內完成。
不过也不是毫无办法。
卢卡斯-莱默测试可以有效简化这个过程。
在藉助这个方法的情况下完全通过递归叠代序列验证是否满足特定条件。
具体步骤也不复杂。
此前在写论文的时候林枫还特別了解过这方面。
先是初始化设s_0=4,而后递归:计算s_(n+1)=s_(n2-2)
模2p-1,运算从n=1开始,直到n=p-2为止。
如果最终结果s_(p-2)是0,那么2p-1就是一个素数;否则它不是素数。
听起来依旧是有点麻烦的。
但对於超级计算机来说这完全是小儿科好不好。
而且由於卢卡斯-莱默测试的复杂度是线性时间复杂度,即o,这意味著计算的时间与p成正比。
对於274207281-1来说,只需要执行74207281次循环,每次计算一个模运算。
卢卡斯-莱默测试每次叠代中包含的运算量比较复杂,涉及到大整数的平方和模运算。
不过估算的话也不是没办法。
可以粗略假设每次叠代进行模运算需要进行约106次计算。
这样计算的话,总的计算次数是:
74207281106约等於7.421013次计算。
如果计算机每秒可以执行1015次计算。
则总时间为0.0742秒。
理论上,一台超级计算机可以在不到0.1秒的时间內验证274207281-1是否是一个梅森素数。
到林枫这却这么久还没出结果
只能说实属正常。
毕竟林枫估算时是按照一台超算全部算力都用於验证这样情况进行的估算。
但如果用来验证林枫这些成果动用的並不是全部算力,那么实际速度往往要大打折扣。
这么久还没出结果,林枫估计实际分配的算力额甚至可能连这台超算0.01%的算力都不到。
不然,但凡是分配的算力多一点,林枫估计也早就搞完验证了。
虽然情有可原。
但林枫现在可是等著这两组梅森素数快快通过验证然后搞一波50万美元的资金呢。
结果现在这么拖沓可还行。
搞钱这么慢,岂不是影响林枫奔向星辰大海的速度。
而且眼看著信用卡帐单越积越高,林枫不能不著急。
林枫登上了推特,顺手艾特了加州大学洛杉磯分校高性能计算实验室: