日排行周排行月排行日推荐周推荐月推荐

022 新的梅森素数(第5页)

一点点微小的成果的出现其背后所历经的艰辛是难以想象的。

这可能需要动用庞大的人力资源甚至是计算资源。

一个平平无奇的项目背后往往有着无数搬砖的人在默默付出。

只看到一门学科华丽的外表却看不到背后的各种艰辛是不应该的。

-

6洲没怎么费力就完成了gImps中相应的账号的注册。

并且完成了“2的74,2o7,281次方-1是梅森素数”这个结论提交。

不过饶是如此,事情也并没有结束,怎样让自己提交的这个结论被注意到呢?

毕竟每天gImps中要处理的数据是相当庞大的。

不过这些似乎这不重要了,因为6洲现随着其完成了“2的74,2o7,281次方-1是梅森素数”这个结论提交。

沉寂的系统居然有了新的反应。

飞卢18周年品牌升级回馈读者!充1oo赠5ooVIp点券!

(活动时间:8月1o日到8月2o日)

例如,对于某些特定的组合优化问题,如子集和问题(subsetsum),由于其指数复杂度,当问题规模较大时,无法通过穷举搜索所有可能的解决方案来找到最优解。

因此,指数复杂度并不直接表示问题无解,而是指在实际情况下,对于大规模问题找到精确解决方案可能非常困难。

而如果要验证一个大数是素数除了试除法之外,还有很多别的方式。

譬如说证明一个大数是素数的方法可以使用mi11er-Rabin素数测试。

mi11er-Rabin素数测试是一种概率性测试,可以高概率确定一个数是否为素数。

以下是使用mi11er-Rabin素数测试证明一个大数是素数的一般步骤:

选择一个适当的测试次数(通常是几十到几百次),记为k。

将待检查的大数减1,得到数n-1。

将n-1分解为d*2^s的形式,其中d是奇数,s是非负整数。即n-1=d*(2^s)。

对于每个测试次数,选择一个随机整数a,满足1an-1

计算a^dmodn,并检查结果是否为1或n-1。

如果结果是1或n-1,则进行下一次测试。

如果结果不是1且不是n-1,则进行s-1次迭代计算:计算(a^d)^2modn,依次重复。

如果在k次测试中的任何一次迭代中得到的结果不是1且不是n-1,则n不是素数。

如果在k次测试中所有迭代中都得到的结果都是1或n-1,则n很可能是素数。

需要注意的是,由于mi11er-Rabin素数测试是概率性的,有一定的错误概率。

但是,通过增加测试次数k,可以将错误概率降低到非常小的程度。

这个过程听起来要比试除法繁琐很多。

但从计算复杂度的角度来出,mi11er-Rabin素数测试的时间复杂度是多项式复杂度。

具体而言,它的时间复杂度为o(k*1og?(n)*(1og?(n))3),其中k是测试次数,n是待检查的大数。

在mi11er-Rabin素数测试中,迭代次数是由测试次数k决定的。

每次迭代的计算包括取模运算和幂运算,它们的复杂度都是多项式级别的。

与指数复杂度的算法相比,多项式复杂度的算法在处理大数时更加高效。

尽管mi11er-Rabin素数测试是一种概率性测试,但随着测试次数的增加,错误概率可以降低到极小的程度。

虽然mi11er-Rabin素数测试具有多项式时间复杂度,但如果是对于比大数还要大的数(也就是是说对于一些动辄千万位的数非常大的数),想要验证其是不是素数仍然需要相当大的计算资源和时间才能完成测试。

甚至于在实际应用中,常常会结合其他优化技术和算法来提高素数测试的效率。

而如何验证一个数是不是梅森素数呢?

先梅森素数也是素数的一种。

因此要先判定这个数是素数。

而后再验证这个数是否符合梅森素数的定义。

具体来说,可以依靠Lucas-Lehmer测试即卢卡斯-莱默检验法。

卢卡斯-莱默检验法(Lucas-Lehmertest)是一种用于验证梅森素数的特定形式的素数测试方法。

它仅适用于梅森素数的验证(形如2^p-1的素数,其中p是一个素数。)

卢卡斯-莱默检验法的原理如下:

书友推荐:我的绝品老师城里的香艳芭蕾鞋镜中色正义的使命无敌六皇子书呆子很苦恼没你就不行之新征途虐主文的NPC消极怠工了[快穿]褚府小寡妇(产乳,兄弟np)苏霞老王封神:开局一个凤凰分身他的羽毛使用法诱我深入下雨天被嫡姐换亲之后于青和大叔奔现后迟音相敬如宾第六年
书友收藏:大相师陈平缘分似梦魔门败类淫乱小镇NBA:开局交易麦迪,震惊联盟权力巅峰:从借调市纪委开始天才少年,开局便是救世主浪漫时光下雨天全民转职:修仙者废?看我一剑开仙门!被休后,我成太子的掌中娇综影视之创死所有主角科举:儿啊,光宗耀祖全靠你了孕期掉眼泪,佛子轻哄娇妻放肆宠小知青太彪悍,京院荣少他超爱梦里花(强制、NP)破云绝色佳人系统赋予我长生,却忘记赐我不老她是儿媳公媳高