数学通常被人们,尤其是数学家视为科学界的皇后,作为皇后,它自然不愿意和其他任何学科产生暧昧的关系。因此,在某次"理论数学与应用数学联合会议"上,有人请大卫·希尔伯特作一次公开演讲,希望借此弥合两派数学家之间的隔阂。希尔伯特是这样开场的:
"我们常听别人说,理论数学和应用数学互为寇仇。但实情并非如此。无论是过去、现在还是未来,理论数学和应用数学从来就不是寇仇,事实上,它们也不可能成为寇仇,因为二者之间毫无相似之处。"
不过,虽然数学情愿保持超然的地位,尽量远离其他学科,但反过来说,其他学科(尤其是物理)却很喜欢数学,它们总是竭尽所能地想跟数学"打成一片"。事实上,时至今日,理论数学几乎所有分支都已经成为科学家解释物理世界的工具,其中包括那些曾经被人们认为纯粹得没有任何实用价值的理论,例如群论、非交换代数和非欧几何。
不过,哪怕是在今天,数学领域内仍有一套庞大的体系一直坚守着"无用"的高贵地位,它唯一的作用就是帮助人们锻炼智力,这样的超然绝对配得上"纯粹之王"的桂冠。这套体系就是所谓的"数论"(这里的"数"指的是整数),它是最古老、最复杂的理论数学思想之一。
奇怪的是,尽管数论的确是最纯粹的数学,但从某个角度来说,它又是一门基于经验甚至实验的科学。事实上,数论的绝大多数命题来自实践人们尝试用数字去做各种事情,然后得到一些结果,由此形成理论。这样的过程和物理学别无二致,只不过物理学家尝试的对象是现实中的物体而非理论化的数字。数论和物理学还有一个相似之处:它们的某些命题得到了"数学上"的证明,但另一些命题仍停留在经验主义的阶段,等待着最杰出的数学家去证明。
我们不妨以"质数问题"为例。质数指的是不能被比它小的数字(除了1以外)整除的数,例如1,2,3,5,7,11,13,17,等等,但12就不是质数,因为它可以表示为2X2X3。
质数的个数是无限的吗?还是说存在一个最大的质数,比它大的任何数字都可以表示为已有质数的乘积?首先提出这个问题的正是欧几里得(Euclid)本人,他以一种简单而优雅的方式证明了质数有无穷多个,所以并不存在所谓的"最大质数"。
为了验证这个命题,我们暂且假设质数的个数是有限的,并用字母N来代表已知最大的质数。现在,我们将所有质数相乘,最后再加1,数学式如下:
(1×2×3×5×7×11×13×...×N) 1
这个式子得出的结果当然比所谓的"最大质数"N大得多,但是这个数显然不能被任何一个质数(最大到N为止)整除,因为它是用上面这个式子构建出来的。根据这个数学式,我们可以清晰地看到,无论用哪个质数去除它,最后必然得到余数1。
因此,我们得到的这个数字要么是个质数,要么能被一个大于N的质数整除,无论哪个结果都必将推翻我们最初的假设:N是最大的质数。
我们刚才采用的证明方法叫作"归谬法"(reductioadabsurdum),它是数学家最爱的工具之一。
既然我们知道质数有无穷多个,那么我们不妨问问自己:有没有什么简单的办法能将所有质数按照顺序一个不漏地列出来呢?古希腊哲学家暨数学家埃拉托斯特尼(Eratosthenes)首次提出了解决这个问题的办法,我们称之为"筛选法"。
既然我们知道质数有无穷多个,那么我们不妨问问自己:有没有什么简单的办法能将所有质数按照顺序一个不漏地列出来呢?古希腊哲学家暨数学家埃拉托斯特尼首次提出了解决这个问题的办法,我们称之为"筛选法"。你只需要写下所有整数:1,2,3,4……然后筛出2的所有倍数,再筛出3和5的所有倍数,以此类推,继续筛出所有质数的倍数。埃拉托斯特尼筛选100以内所有质数的示意图请见图9,这些数字共有26个。利用这种简单的筛选法,我们已经列出了10亿以内的质数表。
要是能列出一个公式来自动寻找所有质数(而且只有质数),那岂不是更快、更简单?然而数学家琢磨了十几个世纪,依然没有找到这样的公式。1640年,法国著名数学家费马(Fermat)提出了一个公式,他认为这个式子算出的结果都是质数。
费马的公式是这样的:2^(2^n) 1,其中n代表自然数,例如1,2,3,4等等。
利用这个公式,我们可以得出如下结果:
2^2 1=5
2^(2^2) 1=17
2^(2^3) 1=257
2^(2^4) 1=65537
事实上,这几个数的确都是质数。不过大约一个世纪以后,德国数学家欧拉(Euler)却发现,按照费马的公式得出的第五个数(2^(2^5) 1=4294967297)不是质数,事实上,这个数等于6700417和641的乘积,费马计算质数的经验公式也因此被证伪了。
另一个能够算出大量质数的重要公式如下:
n^2-n 41
这个公式中的n同样是自然数。我们将1到40的自然数代入这个公式,得到的结果都是质数,但不幸的是,这个式子走到第41步的时候栽了个跟头。
事实上,
〖(41)〗^2-41 41=〖41〗^2=41×41
这是一个平方数,不是质数。
我们再介绍一个试图寻找质数的公式:
n^2-79n 1601
这个质数公式适用于79以内的自然数,但却被80打败了!
所以我们直到现在都没能列出一个只能算出质数的通用公式。
数论中还有一个既没被证明也没被证伪的有趣问题,人称"哥德巴赫猜想"(Goldbachconjecture)。这个猜想是在1742年提出的,它宣称任何一个偶数都能表示为两个质数之和。(在现代数学语言中,哥德巴赫猜想表述为:任何一个大于2的偶数都能表示为两个质数之和。这里同样牵涉到1是否质数的定义。)不用费多少力气你就会发现,对于一些简单的数字,这个猜想完全成立,比如说,12=7 5,24=17 7,32=29 3。然而数学家耗费了无数心血,却依然无法完全证实这个猜想,与此同时,他们也找不出任何一个反例。1931年,俄罗斯数学家施尼雷尔曼(Schnirelman)朝验证哥德巴赫猜想的目标迈出了建设性的一步。他证明了任何一个偶数都能表示为不多于300000个质数之和。30万个质数和2个质数之间的确存在巨大的鸿沟,另一位俄罗斯数学家维诺格拉多夫(Vinogradoff)又将证明的结果进一步推进到了"4个质数之和"。但是,维格拉多夫的"4个质数"离哥德巴赫的"2个质数"还有最后的两步,看来这两步才最难走,要最终证明或证伪这个难题,谁也说不清到底需要多少年或者多少个世纪。
呃,如此说来,要得出一个能够自动推出任意大质数的公式,我们距离这个目标似乎还很遥远,确切地说,我们甚至无法确定这样的公式是否存在。(1966年,中国数学家陈景润证明了"陈氏定理":任何一个充分大的偶数都可以表示为两个质数的和或者一个质数与一个半质数(2次殆质数)的和。严格地说,这是哥德巴赫猜想的一个弱化版本,但截至2018年,陈景润的证明仍是验证哥德巴赫猜想的最好结果。)