费马大定理(Fermat’s Last Theorem)不仅是一道困扰数学家300多年的难题,还有人专门写了一本书,书名就是《费马大定理》。这本书在我的Kindle里放了有一段时间了,2018年的时候,听说比特币里面的非对称加密算法中的椭圆曲线与费马大定理有密切关系,而我又实在看不出费马公式 $ x^n + y^n = z^n $ 与椭圆曲线 $ y^2 = x^3 + ax + b $ 有何联系,所以就拿起了这本书一寻究竟。

《费马大定理》一书的作者是Simon Singh,他还在1996年导演了同名的纪录片《地平线:费马大定理》。虽然作者在书和电影中尽量都用朴实的语言,并没有引入几个公式,但如果没有基本的数论知识,理解起来并不轻松,听听多位数学家们的逸事还是挺有意思的。 

国内有位张宇老师也专门做了一期视频,把其中的一些故事讲得生动有趣。

勾股定理

费马大定理的描述非常简单,小学生也可以理解,但证明过程奇难无比,这个定理与我们熟知的勾股定理还是近亲。勾股定理的公式 

$$ x^2+y^2=z^2 $$

 我们在小学时就学过,在国外被称为毕达哥拉斯定理 (Pythagorean theorem)。

满足这个方程的正整数解被称为勾股数,在国外称为毕达哥拉斯三元组(Pythagorean triple),最小的一组勾股数是我们熟悉的(3,4,5),西周初年的商高提出了“勾三股四弦五”。                 

现在有了计算机,找到这些勾股数非常轻松,比如一行Python代码就可以搞定,下面的代码筛选掉了一些重复项,并且假定a < b < c:

print([(a,b,c) for a in range(1,101) for b in range(a,101) for c in range(b,101) if a**2 + b**2 == c**2])

执行结果如下:

[(3, 4, 5), (5, 12, 13), (6, 8, 10), (7, 24, 25), ... , (60, 80, 100), (65, 72, 97)]

Haskell的源代码则更加简洁,代码即公式,公式即代码:

[(x,y,z) | x<-[1..100], y<-[x..100], z<-[y..100], x^2+y^2==z^2 ]

中国人研究数学是实用主义,能把“勾三股四弦五”用于生产实践就行,而国外学派讲究严谨,构建好几条公理,然后通过公理去证明一条一条的定理。勾股定理看似简单,但证明起来也需要一点技巧,我上学时用过的教科书上看到的是经典的欧几里得证明法。说实话,当时看明白了这个复杂的证明思路,但现在无论如何是推不出来了。

勾股定理的欧几里得证明法

有一些爱好者收集了100多种证明方法,可谓是五花八门、千奇百怪(https://www.cut-the-knot.org/pythagoras/index.shtml),我最喜欢下面这种无字的证明。

勾股定理的无字证明

说到无字证明,再扯远一些,当年看过这个关于排列组合的无字证明,这个图中除了公式之外,绝对是一个字也没有,非常精巧,不过想理解明白也需要仔细研究一番。                 

组合数的无字证明

费马大定理

勾股公式中存在着无穷的正整数解,但把方程稍微改一下 

$$ x^3+y^3=z^3 $$

此时就找不出一个正整数解。

对于 

$$ x^4+y^4=z^4 $$$$ x^5+y^5=z^5 $$

这些情况,仍然没有正整数解。因此,费马猜测:

$$ x^n+y^n=z^n $$

当n>2时,没有正整数解。

费马出生贵族,喜欢捉弄其他的数学家,经常呆在家里琢磨出一个定理,对外宣称自己找到了证明方法,让外人苦思冥想而不得解。费马死后,有人在他的手稿里发现了许多定理,其它定理慢慢都被世人解决了,但只有一个没被解决,被称为最后的定理(Last theorem),国内翻译为费马大定理,费马折磨人的天性不改,手稿的空白处留着这样一句经典的话:

对这个命题我有一种十分美妙的证明,可惜这里空白太小,写不下。

他留下这一小段话不要紧,这个定理又折磨了后人300多年。

完满数、亲和数、可交往数

完满数(Perfect Number),又被称为完全数、完美数或完备数,它的所有真因子之和,恰好等于它本身。

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248

从这个思路出发,有人发明了亲和数(Amicable Pair),即某个数的所有真因子之和正好等于对方。220和284互为亲和数,因为220的所有因子1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110之和为284,而284的所有因子1, 2, 4, 71, 142之和为220。

再推广之,就有了可交往数(Sociable Numbers),例如:数组(1264460, 1547860, 1727636, 1305184)中,第一个数的因数之和等于第二个数,第二个数的因数之和等于第三个数,…,而第四个数的因数之和等于第一个数,就这样,一群数形成了一个社交圈。

欧拉猜想

欧拉从费马大定理出发也提出了一个猜想,他认为下面这样的方程不存在整数解:

$$ a^4 + b^4 + c^4 = d^4 $$$$ a^5 + b^5 + c^5 + d^5 = e^5 $$

不过,这个猜想是不成立的,很快就有人找到了反例。

1966年,L.J.Lander和T.R.Parkin找到一个反例:

$$ 27^5 + 84^5 + 110^5 + 133^5 = 144^5 $$

1988年,Noam Elkies找出一个反例:

$$ 2682440^4 + 15365639^4 + 18796760^4 = 20615673^4 $$

Roger Frye用电脑直接搜索,找出了一组最小的反例:

$$ 95800^4 + 217519^4 + 414560^4 = 422481^4 $$

n < 41000000

费马死于1665年,这个定理发表的时候已经是1670年,费马大定理实在是太折磨人了,数学家就从容易的特例开始下手:

1676年、1678年数学家证明了n=4时,费马大定理成立;

1770年,欧拉证明了n=3时成立;

1823年,n=5的情形被证明;

1832年,n=14被攻克;

1839年,n=7被法国数学家拉梅证明;

1844年,德国数学家识库麦尔用了20多年创立了理想数理论,证明了当n<100,并且不是37、59、67三个数时,费马大定理成立;

1955年,n<4002均成立;计算机开始出现,加速了证明的过程。

1976年,n<125000;

1985年,n<41000000;

但这种证明方法永远无法最终证明费马大定理,即使把n推进到10的1亿次方,仍是一个有限数,费马大定理看来是无法证明的。

根据有限的例子来推出一个结论在数学上是不可靠的,比如:31,331,3331,33331,333331,3333331,33333331 这些数都是素数,但很可惜,下一个数333333331却不是素数,它可以分解为17 * 19607843。

10万马克

保罗·沃尔夫斯凯尔(Paul Wolfskehl)是一名医生,同时也是数学爱好者,他迷恋上了一位漂亮的女性,但是惨遭拒绝,这使他倍感沮丧而决定自杀。保罗做什么事情都要按计划行事,他非常谨慎地制定了死亡计划中的每个细节。他定下了自杀的日子,决定在午夜钟声响起时用一颗子弹结束自己的生命。

他做事效率比较高,很快提前把安排好的事情都做完了,这时离午夜还有好几个小时呢。为了消磨这几个小时,他就去了图书馆,随手翻到一本数学期刊,很快他被一篇有关费马大定理证明的论文吸引住了,他发现论文中的一处逻辑有漏洞。于是坐下来开始全神贯注地演算,当然最后他没有证明出费马大定理,但规定的自杀时间在不知不觉中已经过了。 

沃尔夫斯凯尔感受到了证明数学题的过程带来的成功喜悦,重新认识到了人生的价值并不只有爱情,数学重新唤起了他生命的欲望。为了感谢这个大定理的救命之恩,他的新遗嘱从他死后财产中拿出10万马克(在1997年时相当与100万英镑)设立了一个大奖,用于奖给任何能证明费马大定理的人。1997年6月27日,该奖最后被安德鲁·怀尔斯获得。

保罗·沃尔夫斯凯尔

椭圆曲线

椭圆曲线的模样并不像椭圆,是因为类似于计算一个椭圆的周长的积分而得名:

$$ \int \frac{dx}{\sqrt{x^3 + a_2 x^2 + a_3 x + a_4}} $$

椭圆曲线的一般形式是 

$$ y^2 = ax^3 + bx^2 + cx +d $$

从下面的两个特例中可以看出椭圆曲线长的样子。

据说费马大定理经过一个变换后可以变为下面这个椭圆曲线方程:

$$ y^2 = x^3 + (A^n - B^n)x^2 + A^nB^n $$

椭圆曲线都是关于x轴对称的,数学家们再给椭圆曲线定义了一种神奇的加法操作,比如P+Q,表示两点的连线与曲线的交点,再向x轴引垂线,对面的那个点就是相加之后的结果。而对于相同的点的加法R+R,则先做切线,再做垂线。 

这种加法操作的几何含义还是挺直观的,可是密码学家们发现把它稍加改造,就可以用于非对称加密领域。这种加密理论要求找到一种不可逆的运算,有加法运算,但没有减法;有乘法运算,没有除法运算。本来密码学家们把大素数相乘用于著名的RSA加密算法中,比如:

$$ 99996011 \times 99999787 = 9999579800849657 $$

两个素数相乘很容易计算,但把右侧的数字分解为2个素数之积难度就有些大,当把500位的素数与500位的素数相乘之后,以现在计算机的计算速度几乎无法解决这个大素数的分解难题。               

密码学家感觉RSA还不够复杂,就把目光锁定在椭圆曲线加密算法上,比如比特币中运用了secp256k1的加密算法,他们定义了一个椭圆曲线方程:

$$ y^2 = x^3 + 7 $$

并把整数范围限制在2^256之内(用到了mod模运算),这个函数的图像已经很难画出来了,如果把x, y限制在60以内,这个函数的图像是这样的:

然后在这个空间中找一个很远的点,称为基点,坐标为(79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798,  483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8),一个私钥经过几亿亿亿次的加法操作之后,变成了公钥。由私钥生成公钥可以在1毫秒之内搞定,但反过来,几百万年也搞不定。

谷山-志村猜想

视线再切换到我们的邻国日本,1954年左右,一对年轻人谷山丰和志村五郎对于一种叫做模形式(modular forms)的数学分支产生了浓厚的兴趣,模运算简单来说就是我们小学时学过的整除后的余数。

谷山丰与志村五郎(图片来自网络)

本来这种数学与椭圆曲线八杆子打不着,但随着研究的深入,他们神奇地发现,一组模形式竟然与一组椭圆方程的特征完全匹配。他们提出了“谷山-志村猜想”,认为每个模形式与某个椭圆方程有着相同的DNA。可惜,1958年11月17日,谷山丰自杀(他的未婚妻在几周后也自杀),研究至此中断。  

1980年代,德国数学家格哈德·弗雷(Gerhard Frey)提出,如果证明了谷山-志村猜想,就间接证明了费马大定理,这里运用了数学中的反证法,他把费马大定理转换为椭圆曲线方程。

(1) 当(且仅当) 费马大定理是错的,则存在一个反例,即存在弗雷的椭圆方程。

(2) 弗雷的椭圆方程是如此的古怪,以致于它决不可能被模形式化。

(3) 谷山-志村猜想说,每一个椭圆方程必定可以模形式化。

推出矛盾。

此时,费马大定理的证明又露出了一丝曙光。

历经7年的最后一击

《费马大定理》全书的主人公出场了,安德鲁·怀尔斯(Andrew Wiles)10岁时遇到了费马大定理,研究生时的学术方向是椭圆曲线,冥冥之中的上帝安排,椭圆曲线与谷山-志村猜想、费马大定理又紧密地联系在了一起。

1986年,他开始着手独立证明谷山-志村猜想,这一研究就是7年,1993年6月,他在英国剑桥大学做了三场学术报告,直到最后一次演讲结束时,他才宣布完成了对费马大定理的证明。                 

事后,专家组开始对他提交的200页的证明手稿进行逐行审查,让怀尔斯担心的事情发生了,有一处证明逻辑存在着缺陷,而且看上去并没有那么容易补救。世界上扑面而来的报道更把他压得喘不过气来,如果这个证明无法补救,那7年的心血可能付之东流。                 

怀尔斯又苦苦研究了1年,期间还差点放弃,最后终于从他曾经放弃的一种方法中找到了灵感。1995年,他的最终证明的论文精简为100多页,喜欢琢磨的朋友可以到这个网址下载。

此后,怀尔斯获得了数学领域上的多项大奖,超过40岁还能有所突破实属不易,当然沃尔夫斯凯尔留下的10万马克也被他收入囊中。他的证明过程实在太复杂了,估计这个世界上没有几个人能够看懂,也有不少人怀疑他是否真的证明了费马大定理。

其它

国内的王德忱还发表了一篇文章:初等数学证明费马猜想,但没有人搭理他。

罗胖,作为一名文科生,也在罗辑思维2014年8月14日专门用了一期来介绍《费马大定理》这本书。豆瓣上的一篇万字评论也是相当精彩。

2013年据说一个美国人有一种简易证明,但后来就没有了下文。



我为什么写这篇文章?大约在1993年,我马上就要从山东大学毕业,一次被同学拉去听潘承洞的一名弟子讲课,内容是哥德巴赫猜想。从那次短短的2个小时的讲座中,我知道了数论上最顶级的难题“1+2”、“1+1”的含义,虽然工作之后再也没有研究过数论,但对这个领域仍然饶有兴趣。

仅以此文,怀念一下四年大学生活吧。


到微信公众号“金喜擅”阅读本文