天才一秒记住【孤独小说网】地址:https://www.gdntek.com
当然,儘管是確定了阅读顺序,林枫也没有马上开始。
任何星辰大海那都是遥远的梦想,想要追求遥远的梦想这没什么。
但前提是要在此之前不需要为物质而烦恼。
想想那令人压抑的信用卡帐单,林枫就一个头两大。
林枫现在还得为物质奔波。
“去码头整点薯条.jpg”
林枫记得当时加州大学洛杉磯分校高性能计算实验室可是在第一时间表示他们已经安排超算集群开始验证2^74207281-1和2^77232917-1是否是梅森素数了。
怎么这么久还没出结果呢?
虽然说漫无目的地去寻找梅森素数挺困难的。
但要通过超级计算机验证一个数是不是梅森素数还真不费劲。
一般来说,要验证2^74207281-1是否是素数。
直接计算出这个数並检查它是否有其他因数是最容易想到的思路。
但这明显不可行。
像是2^74207281-1这种超大数的位数太多,如果暴力因式分解挨个试肯定无法在合理的时间內完成。
不过也不是毫无办法。
卢卡斯-莱默测试可以有效简化这个过程。
在藉助这个方法的情况下完全通过递归叠代序列验证是否满足特定条件。
具体步骤也不复杂。
此前在写论文的时候林枫还特別了解过这方面。
先是初始化设s_0=4,而后递归:计算s_(n+1)=s_(n^2-2)
模2^p-1,运算从n=1开始,直到n=p-2为止。
如果最终结果s_(p-2)是0,那么2^p-1就是一个素数;否则它不是素数。
听起来依旧是有点麻烦的。
但对於超级计算机来说这完全是小儿科好不好。
而且由於卢卡斯-莱默测试的复杂度是线性时间复杂度,即o(p),这意味著计算的时间与p成正比。
对於2^74207281-1来说,只需要执行74207281次循环,每次计算一个模运算。
卢卡斯-莱默测试每次叠代中包含的运算量比较复杂,涉及到大整数的平方和模运算。
不过估算的话也不是没办法。
可以粗略假设每次叠代进行模运算需要进行约10^6次计算。
这样计算的话,总的计算次数是:
74207281*10^6约等於7.42*10^13次计算。
如果计算机每秒可以执行10^15次计算。
则总时间为0.0742秒。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!