Diophantus of Alexandria · 约200–约284

丢番图

在他之前,方程是解题的手段;从他起,方程本身成了题目

(165)2+(125)2=42\left(\frac{16}{5}\right)^2 + \left(\frac{12}{5}\right)^2 = 4^2
《算术》第二卷第八题:把一个平方数分成两个平方数 · 费马正是在这一题的页边写下了那行字

关于丢番图这个人,可靠的只有三件事:他住在亚历山大里亚,写了一部《算术》,年代大约在三世纪中叶——他引用过公元前二世纪的许普西克勒斯,又被四世纪的席恩引用,所以只能夹在这两端之间。其余全部来自一首收在《希腊诗文选》里的墓志铭:它把他的一生编成一道方程,解出来是八十四岁。生平就这么多,连这首诗是不是真的写他都没人担保。

《算术》与同时代的书都不一样。《原本》讲形,《九章》讲用,而这本书一百三十道题,题题只问数:找出满足某个条件的数,而且只认正的有理数——遇到解是负数的方程,他直接判为「荒谬」。它划时代的地方有两处。一是记号:未知数写作 ς,平方写作 Δ、立方写作 Κ,还有一个专门的减号——代数第一次从整句的话缩成了符号,虽然离韦达用字母写「任意一个数」还差一千三百年。二是方法:他习惯只设一个未知数,靠对称把另一个消掉;又常常在一条曲线上从一个已知的有理点出发,作一条直线去截它,交点仍是有理点——这一手今天叫弦法,是椭圆曲线理论的祖宗。十三卷只存下六卷希腊文,1968 年又在马什哈德找到四卷阿拉伯文译本。

丢番图肖像
《算术》巴歇希腊文拉丁文对照本扉页,巴黎,1621 · Wikimedia Commons,公有领域。丢番图没有画像传世,生卒年只能从一首墓志铭和两处引用里推。这一版是他进入近代欧洲的样子——费马手上那本就是它,大定理写在第二卷第八题的页边。

生平

  1. 约200
    约生于此时

    生卒年皆为推算。全部依据是墓志铭里的八十四岁,加上他引用许普西克勒斯、又被席恩引用这两个端点。

  2. 约250
    《算术》成书

    原十三卷,题献给一位名叫狄奥尼修斯的人。开篇说明他要「从这门学问赖以建立的基础讲起」。

  3. 卷一
    一个未知数走天下

    两数和 20、积 96,他不设两个未知数,而设 10 加 x 与 10 减 x——对称一上来就消掉一个。

  4. 卷二 第八题
    把一个平方数分成两个平方数

    用弦法求出 16 = (16/5)² + (12/5)²。一千四百年后,费马在这一题的页边写下了他那行著名的话。

  5. 约284
    约卒于此时

    无任何记载。

  6. 6世纪
    墓志铭被收进《希腊诗文选》

    梅特罗多罗斯所编的算题集里,第 126 首把他的一生写成一道方程。

  7. 1463
    雷格蒙塔努斯在威尼斯见到抄本

    他在讲演里说:这里藏着「全部算术之花」,却还没有人把它译出来。

  8. 1621
    巴歇的希腊文拉丁文对照本

    在此之前有 1575 年克桑德的拉丁译本。巴歇这一版是费马手上那本——肖像位放的就是它的扉页。

  9. 1637
    页边那行字

    费马在第二卷第八题旁写道:立方数不能分成两个立方数……我发现了一个真正奇妙的证明,可惜这里的空白太窄。

  10. 1900
    希尔伯特的第十问题

    「给定一个整系数丢番图方程,能否用有限步骤判定它有没有整数解?」

  11. 1970
    答案是不能

    马季亚谢维奇接上戴维斯、普特南、鲁宾逊的工作,证明不存在这样的算法。他的方程成了不可判定性的标准例子。

展品厅

绝大多数展品都可以亲手把玩——这是本馆的立馆之本;少数以叙述为主的,做成故事展签。

一个未知数走天下

两数和 20、积 96——他不设 x 和 y,而设 10 加 x 与 10 减 x。

(10+x)(10x)=100x2=96(10 + x)(10 - x) = 100 - x^2 = 96

《算术》第一卷第二十七题:求两个数,和是 20,积是 96。今天的做法是设两个未知数、列两个方程,再消元。丢番图没有这条路可走——他的记号里只有一个未知数符号 ς,想设第二个也没法写。限制逼出了技巧:既然两数之和已知,就把它们写成 10 加 x 与 10 减 x,和自动等于 20,一个未知数就够了。剩下的是 (10+x)(10−x) = 100 − x² = 96,于是 x = 2,两数是 12 与 8。这一手叫「对称设元」,《算术》里反复出现:和与差、积与商,凡是给了某种对称的题,他都先用对称把未知数的个数压到一个。看上去是权宜之计,其实是代数里一直有效的策略——先用已知的结构把自由度削掉,剩下的才去解。今天解方程组时「用一个参数把一族解写出来」,走的是同一条思路。

今天的做法是设两个未知数、列两个方程再消元。丢番图没有这条路: 他的记号里只有一个未知数符号,第二个根本写不出来。 于是他把两数设成 10 加 x 与 10 减 x——和自动等于 20,题目只剩一个未知数。 右边那张图就是这一步的图解:一个 10×10 的正方形挖掉角上的 x², 剩下的面积恰好等于左边那个长方形。拖到 x = 2,积落在 96 上,两数是 8 与 12。 限制逼出来的技巧,后来成了通用策略:先用已知的结构把自由度削掉,再去解剩下的。

他写的方程长什么样

在「全用话说」和「用字母写」之间,还有过一种中间状态。

ΔYβςγ2x2+3x\Delta^{Y}\beta\,\varsigma\gamma \quad \longrightarrow \quad 2x^2 + 3x

代数的写法经历过三段:先是整句的话(「某数的平方,加上它的十倍,等于三十九」),最后是字母(x² + 10x = 39),中间夹着丢番图这一段——把常用的词缩成记号,但还没有字母。他的未知数写作 ς,平方是 Δ、立方是 Κ,纯数字前面加一个记号表示「单位」,另有一个专门的符号表示相减,等号则写成一个缩略的「等于」。于是一个方程能排成一行符号,而不是一段话。这一步的意义常被低估:有了记号,式子才能被「看」——项与项的对应、两边的相消,都是眼睛先看出来、再动手的。但他的记号有两个天花板:未知数只有一个,没法写第二个;而且记号是词的缩写,不是可以代任意数的字母,所以他永远在解「这一道题」,没法谈「这一类题」。要跨过这两道坎,得等一千三百年后的韦达。

代数的写法走过三段:先是整句的话,最后是字母,中间夹着丢番图这一段——把常用的词缩成记号,但还没有字母。 未知数写作 ς,平方 Δ、立方 Κ,纯数字那项前面加 Μ,另有一个专门的减号。 有了记号,式子才第一次能被「看」:项与项的对应、两边的相消,都是眼睛先看出来的。 但他的记号有两个天花板——未知数只有一个,而记号是词的缩写、不是能代任意数的字母, 所以他永远在解「这一道题」。跨过这两道坎要等一千三百年后的韦达。

只要整数解

同一个方程,允许分数就有无穷多解,只认整数就可能一个也没有。

ax+by=cgcd(a,b)cax + by = c \quad \gcd(a,b) \mid c

「丢番图方程」今天专指只求整数解(或有理数解)的方程,名字就是从他这里来的——尽管他自己要的是正有理数,整数那一支是后人接着走的。把解限制在整数上,方程的性质会彻底改变:4x + 6y = 7 在实数里是一条普普通通的直线,可它一个整数解也没有,因为左边永远是偶数。一般的判据是:ax + by = c 有整数解,当且仅当 a 与 b 的最大公约数整除 c——而求这个最大公约数用的正是欧几里得的辗转相除法,倒推回去还能把一组解直接写出来。所以「整除」这件小事,一下子成了能不能解的关键。这条界线也是后来一切麻烦的源头:解的存在性不再是连续的、可以逼近的,而是要么有、要么没有。

「丢番图方程」今天专指只求整数解的方程,名字就是从他这里来的。 把解限制在整数上,方程的性质会彻底改变:4x + 6y = c 在实数里永远是一条 普普通通的直线,可 c 是奇数时它一个整数解也没有—— 左边永远是 2 的倍数。一般的判据是 gcd(a, b) 整除 c, 而求这个最大公约数用的正是欧几里得的辗转相除法,倒推回去还能把一组解直接写出来。 存在性不再是连续的、可以逼近的,而是要么有、要么没有——后来一切麻烦都从这条界线开始。

墓志铭:把一生写成一道方程

童年占六分之一,又过十二分之一长出胡须……他活了多少岁?

x6+x12+x7+5+x2+4=x\frac{x}{6} + \frac{x}{12} + \frac{x}{7} + 5 + \frac{x}{2} + 4 = x

《希腊诗文选》第十四卷第 126 首,是一道以他为题的算题:上帝给他的童年占一生的六分之一,再过十二分之一他长出胡须,又过七分之一他结婚,婚后五年得子;儿子活到父亲寿数的一半便去世,此后老人在悲伤中又过了四年。把这些加起来等于一生:x/6 + x/12 + x/7 + 5 + x/2 + 4 = x。通分之后 x = 84。这首诗是我们关于丢番图生平的几乎全部来源——他八十四岁、结过婚、有个儿子并且白发人送黑发人,都只有这一个出处,而它成诗至少比他晚两百年,可信度没人担保。有意思的是它的形式:一个人的生平被写成一道一元一次方程,而且每一段人生都是一个分数——这大概是数学史上最贴切的一块墓碑。

「上帝给他的童年占一生的六分之一,再过十二分之一他长出细髭,又过七分之一他结婚, 婚后五年得子;儿子活到父亲寿数的一半便去世,此后老人在悲伤中又过了四年。」 六段加起来等于一生,通分之后 x = 84。 拖动滑块看:命短了六段兜不住,命长了又填不满,只有 84 岁严丝合缝。 这首诗是我们关于丢番图生平的几乎全部来源——他八十四岁、结过婚、白发人送黑发人, 都只有这一个出处。数学史上最贴切的一块墓碑:一个人的一生被写成一道一元一次方程。

镇馆之宝 · 亲手玩

弦法:一个有理点生出无穷多个

在曲线上找到一个有理点,拿直线去截它,截出来的还是有理点。

(4(1t2)1+t2)2+(8t1+t2)2=16\left(\frac{4(1-t^2)}{1+t^2}\right)^2 + \left(\frac{8t}{1+t^2}\right)^2 = 16

《算术》第二卷第八题要把 16 分成两个平方数。丢番图的办法是:在圆 x² + y² = 16 上先看一个显然的有理点,比如 (−4, 0),然后过它作一条斜率为有理数 t 的直线去截这个圆。直线与圆的两个交点,一个是出发点,另一个必然也是有理点——因为把直线代进圆方程会得到一个二次方程,它已经有一个有理根,两根之和与积都是有理数,那么另一个根也躲不掉。取 t = 1/3 就得到 (16/5, 12/5),正是他给出的答案。这一手看起来只是技巧,其实是现代数论的起点:把它搬到三次曲线上,「过两个有理点作直线、取第三个交点」就成了椭圆曲线上的加法,是今天研究费马大定理、椭圆曲线密码的基本工具。丢番图当年只是想解一道题,却给出了一个至今还在用的造点机器。

拖动那条直线的斜率,看它从同一个点出发,在圆上截出一个又一个分数坐标

圆上先认一个显然的有理点 (−4, 0),过它作一条斜率为有理数的直线去截圆。 另一个交点必然也是有理点——把直线代进圆方程得到一个二次方程, 它已经有一个有理根,两根之和与积都是有理数,另一个根就躲不掉。 取 t = 1/3 得到 (16/5, 12/5),正是《算术》第二卷第八题写下的答案; 换个斜率就换出另一组,无穷无尽。这一手看着只是技巧,其实是现代数论的起点: 搬到三次曲线上,「过两个有理点作直线、取第三个交点」就成了椭圆曲线上的加法—— 今天证费马大定理、做椭圆曲线密码,用的都是它。

一千七百年后,他的方程成了不可判定的例子

希尔伯特第十问题:有没有一个办法,判定任意丢番图方程有没有整数解?

1900 年,希尔伯特在巴黎列出的第十个问题是:给定一个整系数的丢番图方程,要求一个「用有限步骤就能判定它有没有整数解」的程序。注意他连「程序」是什么都还没法定义——那要等到 1936 年图灵把「机械地算」说清楚之后。1970 年,二十二岁的马季亚谢维奇补上了最后一块:接着戴维斯、普特南与朱莉娅·鲁宾逊三十年的工作,他证明了「丢番图方程有整数解」这件事,与「一台图灵机会不会停」一样难——没有任何算法能对所有情形给出答案。于是这个从三世纪的亚历山大里亚传下来的题型,成了不可判定性最具体的样本:它不是自指的怪句子,也不是虚构的机器,而是一个整系数方程,写在纸上,你看得懂每一个符号,却没有通用的办法知道它有没有整数解。哥德尔早就预感到这一点——他说过,要么人的心智无限地超过任何有限的机器,要么就存在绝对无解的丢番图问题。

故事展签故事展签:一道古老的题型,最后成了「有些事机器永远算不出来」的证据。

传承

他的工作没有留在十八世纪——每条链的终点,都是你今天正在使用的东西。

《算术》:方程第一次被单独当成对象阿拉伯代数与花拉子米韦达用字母写方程:从解一道题到谈一类题
缩略记号 ς、Δ、Κ韦达的字母代数今天每一行公式
弦法:从一个有理点造出更多椭圆曲线上的弦切加法怀尔斯证明费马大定理与椭圆曲线密码
第二卷第八题费马写在页边的那行字1995 年怀尔斯补上证明
丢番图方程希尔伯特第十问题1970 年:不存在这样的算法

语录

此墓中安葬着丢番图。他生命的六分之一是幸福的童年,再过十二分之一,双颊长出细髭……

—— 《希腊诗文选》卷十四第 126 首,约 6 世纪 · 解这道方程得 84——这是我们关于他生平的几乎全部来源

我要从这门学问赖以建立的基础讲起,把数的性质与它们所含的力量陈述给你。

—— 《算术》献词,致狄奥尼修斯 · 全书开篇的第一句话

这是个荒谬的方程。

—— 《算术》卷五第二题注 · 他指的是 4x + 20 = 4 —— 解是负数,在他眼里就是不合理的