第一部分 基础

在很多个世纪以前的古亚历山大,一位老人埋葬了自己的儿子。这位心碎的老人为了转移自己的悲伤,开始整理大量的代数问题,并将这些问题及其解法汇编成书,取名《算术》(Arithmetica)。这些就是人们对亚历山大的丢番图几乎所有的了解,而这些了解绝大多数来自其好友在他去世后不久所写的一个谜题:托马斯·希恩,Diophantus of Alexandria: A Study in the History of Greek Algebra,second edition(Cambridge University Press,1910,Dover Publications,1964),3。

行人啊,请稍驻足,这里埋葬着丢番图。上帝赋予他一生的六分之一,享受童年的幸福;再过十二分之一,两颊长胡;又过了七分之一,燃起结婚的蜡烛。爱子的降生盼了五年之久,可怜那迟来的儿郞啊,只活到父亲岁数的一半,便进入冰冷的坟墓。悲伤只有通过数学来消除,四年后,他自己也走完了人生旅途。Greek Mathematical Works II: Aristarchus to Pappus of Alexandria(Loeb Classical Library No. 362),由Ivor Thomas翻译(Harvard University Press,1941),512–3。

这篇墓志铭对丢番图儿子的死亡说得不是很清楚。其中提到,他只活到了“父亲岁数的一半”,但这是指儿子死时父亲年龄的一半,还是指他父亲寿命的一半?不论怎样理解,都可以解答。但如果是后一种理解“只活到他父亲寿命的一半”,我们得出的岁数会是一个漂亮而又简洁的整数。

我们假设丢番图的寿命为x。丢番图生命中每个时期的年数要么是他寿命的几分之几(例如,x除以6是他的童年时光),要么是一个整数(例如,从他结婚到儿子出生有5年的时光)。丢番图生命中所有时期的年份之和为x,所以这个谜题可以用下面这个简单的代数式来表示:

所有分母的最小公倍数是84,将等号两边同时乘以84得到:

14x+7x+12x+420+42x+336=84x

分别整理带有x的项和常数项,得到:

84x-14x-7x-12x-42x=420+336

即:

9x=756

方程的解是:

x=84

所以,丢番图的童年时光是14年,7年后他长大成人。又过了12年,在33岁的时候,他结了婚,5年后有了儿子。儿子死于42岁,丢番图当时80岁,4年后丢番图去世。

事实上,有一个更快捷的方法来解这个谜题:如果深入探索出题人的内心想法,你就会发现他并不想用分数来增加麻烦。丢番图寿命的“十二分之一”和“七分之一”必然是整数,所以他的寿命年数一定可以被7和12整除(自然也会被2和6整除)。只需将12乘以7就能得到84。这个看起来也像是合适的高龄岁数,所以它极有可能是对的。

丢番图去世时也许是84岁,但是对于历史来说,更重要的问题是找到具体时间。人们曾经猜测,丢番图的时代是在公元前150年到公元280年之间这些日期来自Simon Hornblower and Antony Sprawforth,eds.,Oxford Classical Dictionary,revised third edition(Oxford University Press,2003),483。,那是一个令人向往的时期。这样的话,丢番图就活在欧几里得(活跃在约公元前295年这些亚历山大数学家们的生活年代来自Charles Coulston Gillispie,ed.,Dictionary of Scientific Biography (Scribners,1970)。)和埃拉托色尼(约公元前276—前195年)等早期亚历山大数学家们之后,这也说明他与亚历山大的海伦(活跃在公元62年)处于同一时期。海伦的著作涉及了力学、气体力学以及自动控制,他似乎还发明了一种原始蒸汽机。丢番图也许还认识那位凭著作《天文学大成》而被世人铭记的亚历山大天文学家托勒密(约公元100—170)。那本书包含了世界上第一个三角函数表,并且建立了直到十六七世纪哥白尼革命时才被推翻的描述天体运动的数学。

不幸的是,丢番图也许从未见过这些亚历山大的数学家和科学家们。过去一百多年来,古典学者们之间的共识是,丢番图大约活跃在公元250年,他现存的主要著作《算术》很可能也追溯到那个时期。这样的话,丢番图的出生时间大概是在托勒密去世时间的前后。曾经编辑了权威的希腊版《算术》(1893~1895年出版)的保罗·塔纳里注意到,这本书写着献给“尊敬的狄奥尼修”。虽然这是一个常用名,但塔纳里猜测,这个狄奥尼修就是那个曾在公元232~247年担任亚历山大传道学校校长,以及之后在公元248~265年担任亚历山大主教的狄奥尼修。因此,丢番图可能是个基督徒。希恩,Diophantus of Alexandria,2,note 2。希恩本人好像也对此持怀疑态度。如果是这样,下面这一事实就有点讽刺意味了:对《算术》的一个早期但遗失了的评注是由塞翁的女儿希帕蒂亚(约公元370—415)所写的,她是亚历山大最后一位伟大的数学家,后来被一帮反对她“异教徒”哲学思想的基督教暴徒杀害。

古希腊数学家在几何学和天文学领域一直是最强的。丢番图在种族上是希腊人,但与众不同的是,他用“数字的科学”,即我们所知的代数,来缓解儿子去世的悲痛。他似乎是代数上很多创新的源头,包括他在问题中使用的符号和缩写,这标志着数学问题从文字描述到现代代数表示法的转变。

《算术》的6本书(原来是13本)中罗列的问题一道比一道难,大部分都难于求解丢番图年龄的问题。丢番图的问题常常含有多个未知量。他的一些问题是不定的,也就是说这些问题通常有多个解。《算术》中只有一个问题不是抽象的,也就是说其他问题都是绝对数字化、不指代现实事物的。

丢番图提及的另一个抽象元素是幂。那个时候,数学家们已经熟悉了平方和立方。平方用来计算一个平面图形的面积,立方用来计算一个实体的体积。但是丢番图将高次方引入了他的问题:4次方(他称为“平方-平方”)、5次方(他称为“平方-立方”)和6次方(他称为“立方-立方”)。丢番图知道,这些幂与现实没有关联性,并且他也不在乎这种数学的实用性。这是纯粹的娱乐性数学,仅仅用来强化思维,没有别的目的。

这里列举第4本书中的第一个问题。希恩,Diophantus of Alexandria,168。丢番图先是概括地阐述了:

将一个已知数拆分成为两个立方体的体积,并且这两个立方体的边之和等于另一个已知数。

接着给出了例子:

已知数为370,边长之和是10。

将这个问题用图表示后可见,他需要处理两个不同边长的立方体。现代代数学家可以将这两个立方体的边标记为xy

这两条边加起来为10。这两个立方体的体积之和(x3y3)是370。我们现在写下两个等式:

x+y=10

x3+y3=370

由第一个等式得出,y等于(10-x),将其代入第二个等式:

x3+(10-x)3=370

展开(10-x)3,我们希望立方项最终可以消失:

x3+(1000+30x2-300x-x3 )=370

很幸运,立方项消失了,经过整理后可以得到:

30x2-300x+630=0

等式左边的3个数有一个公因数,所以可以同时除以30:

x2-10x+21=0

现在,这个问题基本解决了。你有两个选择。如果记得二次方程的求根公式就可以直接使用它;或者,如果你曾经练习过求解类似的方程,就可以一直盯着它思索,直到它自己神奇地分解成

对于ax2+bx+c=0,解为x=

(x-7)(x-3)=0

因此两个边的长度分别为7和3。的确,这两个边加起来等于10,它们的立方(343和27)和等于370。

丢番图并不像你我这样解决这个问题,他确实不会。尽管丢番图的问题经常涉及多个未知数,但是他的记号只允许他表达一个未知数。他用了一个巧妙的方法弥补了这一点。他没有将两个立方体的边长标记为xy,而是标记为(5+x)和(5-x)。这两个边长可以用一个未知数x表示,并且加起来确实等于10。接下来,他就可以将这两条边进行立方运算,相加后等于370:

(5+x)3+(5-x)3=370

这个式子看起来比我们的糟,但是如果展开这些立方,一些项便会迅速消去,只留下:

30x2+250=370

合并同类项,方程两边再同除以30,进一步化简为:

x2=4

x=2。因为两条边是(5+x)和(5-x),所以这两条边是7和3。

丢番图用来解决这个问题的方法比现在学生用的方法轻松,他神奇并正确地将两个边长用一个未知数表示。这个方法会适用于下一个问题吗?也许可以,也许不可以。建立解决代数方程的通用方法确实不是丢番图所要考虑的。正如一位数学家论述的:“每一个问题都需要一个十分具体的方法,这个方法通常连最类似的问题都不适用。这使得现代数学家即使在研究了100道丢番图问题的解答后,还是很难找到解决第101道题的方法。”Hermann Hankel (1874)引用希恩的Diophantus of Alexandria,54–55。其他数学家就丢番图的方法找到了更清晰的方式。参见Isabella Grigoryevna Bashmakova,Diophantus and Diophantine Equations(Mathematical Association of America,1997),ch. 4。

当然,丢番图在展示这个立方之和为370、边长之和为10的问题时,显然并不是随意选取某些数字,他知道这些假设条件将会导出一个整数解。实际上,丢番图方程就是指只允许整数解的代数方程。丢番图方程可以有很多未知量,这些未知量可以带有整数幂,但是它的解(如果有)总是整数。尽管丢番图经常使用减法来命题,但是他的解从不涉及负数。“对于一个没有用任何正整数相减就得到的负整数本身,丢番图显然没有任何概念。”希恩,Diophantus of Alexandria,52–53。任何一道问题也不会包含有0的解,古希腊人不将0考虑在内。

现代读者们,特别是那些已经默认了丢番图问题只有整数解的人,在遇到丢番图问题中的有理数时也许会有点吃惊。有理数之所以这样命名,不是因为它们在某种程度上符合逻辑,而是因为它们可以表示为两个整数的比。例如:

就是一个有理数。

在《算术》中,有理数只出现在涉及现实物体的问题中,特别是那些一直被大家津津乐道的问题:饮料和德拉克马(古希腊货币)。虽然从这个问题的描述里看不出来,但是有理数在这个解中是必需的:

一个人买了若干份酒,有些单价是8德拉克马,有些是5德拉克马。他为这些酒支付的德拉克马是个平方数,如果这个数再加上60,结果还是一个平方数,该平方数的根是这些酒的份数。求两类酒他各买了多少。希恩,Diophantus of Alexandria,224。

这里的“平方数”是指一个数与它自身的积。例如,25是一个平方数,因为它等于5乘以5。

在进行了一整页的计算后,希恩,Diophantus of Alexandria,225。它揭示了单价5德拉马克的数量是一个有理数:

单价8德拉马克的数量也是一个有理数:

我们检验一下这个结果。(检验这个结果要比推导它容易得多。)如果你用5德拉马克乘以79/12,然后加上8德拉马克乘以59/12的积,就会发现这个人总共支付了德拉马克。丢番图说这个人支付了“平方数的钱”。支付的钱数必须是某个数的平方。令人好奇的是,丢番图认为是个平方数,因为它可以表示为:

分母和分子都是平方数:分别是17和2的平方。因此,(即)的平方。丢番图进一步说:“如果这个数再加上60,结果还是一个平方数,该平方数的根是整个酒的数量。”这里的“整个”不是指整数。丢番图(或者说是《算术》英文版的译者托马斯·哈斯爵士)的意思是指度量的总份数。60加,也就是有理数:

丢番图再一次认为这个数是平方数,因为它的分子和分母都是平方数:分别是23和2的平方。因此,总的度量数是23/2(即),这同样可以通过将79/12和59/12相加得到。

《算术》中最著名的问题也许要算第2本书的第8个问题:将给出的平方数分解为两个平方数的和,也就是说,求xyz,使它们满足:

x2+y2=z2

这个问题的几何解释是毕达哥拉斯定理所描述的直角三角形三条边之间的关系。

这个问题有许多整数解,例如xyz分别等于3、4、5(两个平方数9和16的和等于25)。这个简单的结果显然不是丢番图所希望的。他设定了一个“给出的平方数”(也就是z2)等于16,于是其他两边分别等于144/25和256/25。对于丢番图来说,这些数当然都是平方数,其中第一个数是12/5的平方,第二个数是16/5的平方,并且它们的和是4的平方:

丢番图允许有理数解并不重要,因为这个解等价于一个整数解。简单地将等式两边同乘以52(即25),即可得到:

122+162=202

即144加256等于400。事实上,这是同一组解,它们的不同仅在于度量边的方式不同。丢番图的问题阐述中,斜边是4。这可能是4英尺。现在用一个单位长度不同的尺子去测量,比如单位长度等于五分之一英尺。用这个尺子测量,这条斜边就等于20,其他两条边分别为12和16。

整数是在人们开始计数之时出现的,有理数也许是在人们开始测量时出现的。如果一根胡萝卜的长度等于3根手指的宽度,另一根胡萝卜的长度等于4根手指的宽度,这时第一根胡萝卜的长度就是第二根的

有理数有时也称为可通约数,因为长度被表示成有理数的两个物体总可以重新度量为整数长度,你只需要将新的度量单位变得足够地小。

丢番图的《算术》是用希腊语写的,至少有部分文稿被翻译成了阿拉伯文。当它开始在欧洲数学界产生影响的时候,在1575年首次被翻译成拉丁语,之后在1621年有了更好的版本。费马(1601—1665)曾拥有一本1621年的拉丁语版《算术》,并在其空白处写满了笔记。1670年,费马的儿子公布了这些笔记以及拉丁文版的《算术》。在这道问题旁有这样一段笔记,费马写道:

另一方面,将一个立方数分解为2个立方数,或者将一个4次方数分解为两个4次方数,亦或将除平方之外的任何乘方分解为两个有同幂的乘方,这些都是不可能的。对此,我已经发现了一个非常漂亮的证明,但是这儿的空白之处不够写下它。希恩,Diophantus of Alexandria,144,note 3。

费马宣称,例如:

x3+y3=z3

是没有整数解的,并且幂为4、5、6及之后的类似方程都没有解。这并不明显。等式:

x3+y3+1=z3

非常接近于

x3+y3=z3

而且它有许多整数解,例如xyz分别等于6、8、9。等式

x3+y3-1=z3

同样相似,也有许多整数解,例如9、10、12。为什么这两个相似的等式有解,但是

x3+y3=z3

没解呢?

丢番图在《算术》中介绍的问题都有解,但是许多丢番图方程,例如费马描述的方程,看起来并没有解。对于数学家来说,确定一个丢番图方程是否有整数解比求解特定的丢番图方程更加有趣。

费马没有写出的证明就是大家熟知的费马最后定理(有时也称费马大定理)。多年来,人们普遍相信,不管费马当时想到了怎样的证明,这个证明也许是错的。英国数学家安德鲁·怀尔斯(1953—)从10岁开始就对这个问题产生了兴趣,到了1995年,费马最后定理才最终被他证明。(人们很早就证明了,对于一些特殊情况,例如指数为3时,方程是无解的。)

很显然,证明某些丢番图方程没有解要比找到一个解(如果有)更具挑战性。如果你知道某个特定的丢番图方程存在解,可以简单地验证所有的可能性。由于允许的解只能是整数,因而你可以首先尝试1,然后是2、3及之后的数。如果你不想做这些繁重的工作,可以写一个计算机程序测试所有的可能性,程序迟早会帮你找到答案的。

但是,如果并不知道是否存在解,那么这个用计算机蛮力解决的方案就不合适了。你可以不断尝试,但怎样知道何时该放弃呢?你怎么知道下一步将要测试的一组数字不是所要搜寻的那组数字呢?

麻烦来自这些可恶的数字:它们有无穷多个。