如果有人问,人类到目前为止研究进展最缓慢的领域是什么?别的学科,见仁见智。但要是数学上的话,毫无疑问是对于素数的研究。古老而又漫长,有无数人前赴后继去研究,然而,成果却真心是不多。
上古大神——欧几里得
公元前300年,欧几里得最早研究了形如2N-1的素数,发现了这个性质:
若2N-1是素数,则2N-1×(2N-1)是一个完全数。
这个性质用等比数列的求和公式很容易验证,也就是说只要找到新的梅森素数,新的完全数也就诞生了。后来人们又发现了一个性质:
若2N-1是素数,则N必定为素数。
我中学时代也曾经琢磨过这个问题,其实这个问题用因式分解就可以证明:
这个命题的逆命题却不一定成立,事实上,假如逆命题也成立的话,那么素数的秘密恐怕在几百年前就基本上揭露殆尽了。但是当N等于某一些素数的时候,2N-1却真的可以是素数。
马林·梅森(1588-1648)
费马大法官在17世纪对于形如这样的素数做了不少研究,马林·梅森在欧几里得,费马的研究基础上对这样形式的素数做了大量系统性的研究,如此形式的素数也被称作梅森素数。1644年,梅森在一本著作《物理数学随感》中大胆断言:
在不大于257的素数中,当p = 2、3、5、7、13、17、19、31、67、127、257 时,2N-1是素数,其它都是合数。
之前费马数的研究历史中,我们发现,历史上凡是关于可能构造出素数的猜想都会极大地吸引人们的研究热情,梅森素数也不例外。几百年前,只能靠手算,这是要花费多大的心血!伟大的欧拉在1772年,时年65岁,在双目失明的情况下,心算验证了M(31)是素数,这个数有10位,是当时已知的最大素数。梅森的猜想其实并不完全正确,人类在1922年终于手动验算了梅森提出的所有p值。
哪里都有你——欧拉大神
手动验算的年代里发生过一件趣事,这是关于M(67)的素性检验。1903年,美国数学家柯尔在美国数学家大会上做了一次简短,精彩的报告。只见他走上讲台,一言不发,刷刷写了一行等式:
267-1=193707721×761838257287人们久久才意识到这个等式的意义,纷纷鼓掌,祝贺他证明了M(67)不是素数。数学家们有时候就是这么简单,直白,充满暴力美学。
超级计算机
从远古时期到1922年,人们利用手算的方式一共找到了12个梅森素数。接下来人们利用电子计算机又找到了22个梅森素数。但是利用大型计算机成本太高了,曾几何时,美国一些大学里的超级计算机只要一启动,整个城市至少有三分之一都要停电,能源消耗可想而知。然而世界互联网的普及却带来了另外一种找寻梅森素数的思路。
分布式计算网格
1996年,在美国程序设计师沃特曼和库尔沃斯基等人的共同努力下,建立了世界上第一个基于互联网的分布式计算项目——因特网梅森素数大搜索(GIMPS)。这个项目很好地利用了人们个人计算机的空闲算力来为科学研究做贡献,就相当于Uber把私家车主吸引过来, 将他们私家车上的多余运力通过平台发挥出来提供给需要的人。曾几何时,人们也是通过这种分布式计算的方式找到了1万亿个黎曼猜想的非平凡零点。
2018年12月21日,GIMPS宣布最大素数获得验证
人们把自己的个人计算机的空闲算力贡献出来有酬劳吗?基本上没有,科学上的事情怎么能随随便便就说要报酬呢?事实上,假如你运气足够好,你也可以获得一笔不菲的奖励。1999年,这个项目奖励制度也开始启动了。比如你找到第一个100万位的梅森素数,奖励你5万美元;1000万位可以获得10万美元,1亿位15万美元。。。当然了,没人会指望做这个发财致富,人们参与进来的根本原因是为了求知和探索,如果自己真的发现了梅森素数,这份荣誉也是很难得的。
到目前为止,已经有60万人加入了这个几乎等同于公益性质的项目了,在数百万台个人计算机的加持之下,这个项目目前的算力可以达到2300万亿次每秒,这个算力跟最厉害的超级计算机基本持平,但是成本却几乎为零。人们从这个项目里一共发现了16个梅森素数,当然也就发现16个新的完全数了。
值得一提的是在2017年12月26日,美国人佩斯(不是中国佩斯)发现了第50个梅森素数,这个数大概有2300多万位,可以用277232917-1来表示,这是当时已知最大的素数(2018年12月7日发现了第51个梅森数M(82589933))。
2017年发现的最大素数
有家日本出版社想了个绝妙的点子,他们就把这个长达2300多万位的素数从头到尾印刷成一本书,720页全部是无穷无尽的数字。可是谁也没想到,该书居然在4天内售出1500本,后期居然还要加印才行!这在专业的数学类书籍中里是很难看到的畅销行情。没人真的会把这本书从头读到尾,但是这个噱头还是吸引了相当大的人群,创意真是无限精彩。不过我在想,这本书的版权应该属于谁呢?
2017年世界最大素数之书
说到这里,肯定又有一些人要问,人们耗费那么大精力去计算这种几百万位的数字意义何在?
网络信息安全的闸门——RSA加密算法
梅森素数在现代加密方式有着重大的应用,著名的RSA加密算法为什么如此可靠,就是基于对大数分解的困难性。我们学习基本的算法编程时,都做过很多跟素数相关的小程序,通常情况下,对于运算高达几十亿次每秒的个人计算机来说,我们是基本上感受不到计算机运算时间的,因为数字太小。那假如给你一个几千位的大数,你再去分解看看,恐怕等你的电脑算报废了都不一定能分解出来。相反的,给你两个数,让你去验证是否是某个超级大数的因子,这个却非常容易。梅森素数给出了一种最纯粹形式的素数,用的素数越大,分解这个大数的难度就越大,甚至近乎不可能。
其次这种需要大量计算的事件中,为了达到最终结果,算力是一方面,另外一方面更加重要的是算法的革新。如果算法复杂度很低,那么你就可以用很有限的算力,就可以获得极高的成果。举个最动听的例子,2001年,一个叫魏德涅夫斯基的德国人通过分布式计算的方法,在世界上动用几万台计算机来一起寻找黎曼猜想的非平凡零点,截止到2004年末,得到了大约1万亿个非平凡零点。然而几乎在同时,两个法国年轻人宣布,用自己的几台个人计算机,用时1年,居然发现了10万亿个非平凡零点,人们直呼不可思议。后来人们才了解,他们用了更加高明的计算公式,这个公式的执行效率远比魏德涅夫斯基采用黎曼-西格尔公式高的多,所以就产生了如此戏剧性的事件。几台个人电脑居然PK掉了几万台计算机,甚至还高出了1个数量级!至此,魏德涅夫斯基用计算机找寻海量黎曼猜想非平凡零点的项目才停止下来。毫无疑问,算法有效性提高的意义要远远高于计算力的提高。
考验算法和算力的基本工作——π
那么我们怎么才能确切知道我们使用的算法是否有效呢?或者有效性可以提高多少,那就必须要验证,于是这些看似“毫无意义”的重复计算就开始了。事实上,世界上仍然有许多大型计算机在日夜不停地计算π的值,甚至到了1000万亿位后仍不停歇。
抛开上面两个最实际的作用,即使梅森素数看不到任何实际的用途,科学家们也还是会去不停地找寻它。人类发展进步的动力和源泉在哪里?那就是人们永无休止的探索欲,对未知世界的无限向往。这就像很久以前,有人问一位著名的登山家,你为什么总是要冒着生命危险去攀登一座又一座高峰呢?“因为,我要登的山就在那里。”
人类永不停息的探索之旅
到目前为止,人们找寻一般的素数和梅森素数的脚步均未停止,数字越大,人们惊讶地发现,找到的最大素数几乎都是梅森素数,这里绝不是巧合。我总感觉这里面应该有更加深层次的原因,可能大素数从根本上就和梅森素数在构造上同根同源,然而人们现在还远远没有能力去探寻到这一步,毕竟对于一般素数的性质人们其实都还知之甚少。
前面有个“abc猜想”揭示了加法,乘法,和素数之间可能存在的内在关系。我也希望后来的某天,会有位大神来揭露一般大素数和梅森素数之间隐藏的秘密。
,