网站首页 (Homepage) 欢   迎   访   问  谢  国  芳 (Roy  Xie) 的  个  人  主  页
Welcome to Roy Xie's Homepage
返回 (Return)

 

从勾股定理到费马大定理 (1)

—— From Pythagorean Theorem to Fermat's Last Theorem
 

      谢国芳(Roy Xie)                               Email:  roixie@163.com   

章节目录

1. 勾股定理和勾股数

  1.1 用算术分析方法寻找勾股数的公式(勾股数第一公式)

  1.2 用解析几何方法寻找勾股数的公式(勾股数第二公式)

2. 从勾股数到高斯整数

3. 费马的猜想——费马大定理的诞生

 

1.  勾股定理和勾股数(毕达哥拉斯数)

勾股定理可以说是全部数学中最古老也最家喻户晓的一个定理,在西方它被称为毕达哥拉斯定理(Pythagorean Theorem or Pythagoras' theorem),因为古希腊的数学家毕达哥拉斯(Pythagoras,572 BC—497 BC)最早证明了这个定理。据说,毕达哥拉斯发现这个定理后欣喜若狂,命人宰杀了一百头牛祭祀庆贺,故它又被戏称为“百牛定理”

勾股定理的确是一个又简单又很“牛”的定理,它断言任意直角三角形斜边的平方等于两条直角边的平方之和,记两直角边的长为 a b, 斜边的长为 c, 则一定有:

a2  +  b2   =  c2

满足上述方程的正整数(a, b, c)被称为“勾股数”,也称为“毕达哥拉斯数”(Pythagorean numbers)或“毕达哥拉斯三元数组”(Pythagorean triplet),由勾股定理可知,这样的三个整数恰好能构成直接三角形的三条边。

最为大家熟悉的勾股数是(3, 4, 5),在二千多年前的中国古代数学著作《周髀算经》就有“勾三股四弦五”的记载,说明我们的老祖宗老早就知道了这组勾股数。中国古代把直角三角形的两条直角边分别称为“勾”和“股”,斜边称为“弦”,“勾三股四弦五”等于道出了勾股定理的一个特例,“勾、股各自乘,并而开方除之(则得弦)”,这是《周髀算经》中对勾股定理的一般表述(但书中并没有给出证明,长于计算,疏于推理和逻辑演绎是中国古代数学的一个特征)[1]

另一组勾股数是(5, 12, 13),它的“知名度”远没有(3, 4, 5)那么高,我们来简单地验证一下:

52  + 122   =  25 + 144  = 169  =  132

接下来的一组勾股数是哪三个数呢?

思考题

请给出除(3, 4, 5)、(5, 12, 13)之外的更多勾股数的例子,至少给出三组,当然越多越好,“多多益善”。


 

 

稍加尝试,你就会发现,单纯靠碰运气“凑出”勾股数是很难的,如果你心算快,运气又好,碰巧能凑出几个来,但要更多就难了(即便你可以使用计算器和电脑)

有没有一个系统性的算法或者说公式,可以“批量地”产生勾股数呢?

 

让我们打消靠运气“凑出”勾股数的念头,把它当成一个真正的数学问题来解决。

寻找勾股数等于要寻找下面这个方程的正整数解:

a2  +  b2   =  c 2  

仔细看一眼这个方程,它有三个未知数(a, b, c),可方程却只有一个,这可怎么解呢?

注意,我们要求在整数范围内求解一个含有多个未知数的方程[2],这和我们平常的解方程(一般是在实数范围内)大相径庭,大异其趣,没有什么定法可依,也没有什么先例可循。唯一可以指导我们的,是下面这个数学中的基本思想和普遍原则:

倘若你对原问题无计可施,尝试改变问题的形式,不断地将它转化成(等价的)新问题,直到能找到“突破口”或“切入点”为止。

 

1.1 用算术分析方法寻找勾股数的公式

面对着方程

a2  +  b2   =  c2

我们一筹莫展,我们自然想到要改变它的形式。最容易想到的是通过移项把它改写为

  a2   =  c2 -  b2

看到上式右边是两个平方的差,我们可以干点什么呢?对!可以进行因式分解:

 a2   =  (c + b) (c - b)  

这让我们一下子看到了问题的“突破口”(或者说“切入点”)

倘若我们能将 a2 分解为两个整数的乘积,然后令一个等于 c + b, 另一个等于 c - b,再解方程算出c, b,我们就成功地“构造出”了一组勾股数。

a2 显然可以写成 1 和它本身的乘积[3]

  a2   =  a2 × 1

(1)

所以作为最简单的尝试,我们令

c + b  =  a2

c  - b  = 1    

两式相加减解得

    b =(a2 -1)/2,        c  = (a2 +1)/2  

因为要求 b, c 是整数,所以 a 必须为奇数,这样一来,我们就得到了一个产生勾股数的公式[4]

  ,        其中a为大于1的奇数

(2)

 

表1:由公式(2)生成的勾股数

a b =(a2 -1)/2 c  =  (a2 +1)/2
3 4 5
5 12 13
7 24 25
9 40 41
11 60 61
13 84 85
15 112 113
...... ...... ......

 

在称奇叹妙的同时,你大概马上会想到一个问题,这公式好是好,且能产生无穷的勾股数(再不愁举不出勾股数的例子了!),但它能将所有的勾股数“一网打尽”吗?有没有“漏网之鱼”——即不能用这个公式表示的勾股数呢?

如果你的眼光比较犀利,你就知道一定会有的。

假如所有的勾股数(a, b, c)都如公式(2)所表示的那样,那么就恒有

即所有勾股数的后两个数都是相邻的整数,但显然勾股数(8,15,17)和(20,21,29)不是这样,它们就是两条“漏掉的鱼儿”

为了弥补公式(2)的缺陷,逮住这些“漏网之鱼”,让我们仔细地检查上面的求解过程,看看它们到底是从哪里漏掉的?

漏洞显然出在上面的式(1),如果 a 是质数,可以确保不会有漏掉的勾股数(请读者自己证明这一点),但如果 a 是合数,设 a = pq, 这时 a2 除了分解成 1 和本身的乘积外,显然还能分解为:

 a2  =  p 2 × q2              a2  =  p × pq2               a2  =  q × qp2

(3)

根据我们前面的求解经验,每一种不同的分解方式都将产生不同的勾股数。

让我们先来看第一种,不失一般性,可设 p>q , 接下来完全同我们前面的求解程序一样,令

c + b  =  p2

   c  - b  =  q2    

解得

  b =(p2 - q2 )/2,       c  =  (p2 + q2 )/2

为了使 b, c 取整数值,p,q 必须同为奇数或偶数,我们于是得到了一个新的勾股数公式:

                                                ,       其中 p,q 同为奇数或偶数 p>q>0                 (4)

 

这显然是比前面的公式(2)更一般的公式,容易看出公式(2)只是它当 q = 1 时的特例。

那么,公式(4)是不是囊括了所有的勾股数呢?有了上次的教训,这回我们要更仔细谨慎。

 

我们想起来,我们还没有尝试上面式(3)中的另两种分解方式(因为 p,q 的对称性,它们实际上是一回事),假如我们作分解

a2  =  p × pq2

接下来,令

c + b  =  pq2

c  - b  =  p    

解得

  b  =  p(q2 -1)/2,       c  =  p(q2 +1)/2    

这次我们得到的勾股数为

注意这组勾股数的三个数有一个公因子 p[5],想必你已经认出来了,它等于前面由公式(2)给出的勾股数 同乘以一个数 p,所以,这一次我们并没有得到“新型的”勾股数。

这种冗余的勾股数其实我们一开始就应该认识到并排除掉(如果你一开始就想到了,说明你很有专业的数学素养)

回到我们的出发点——方程 a2 + b2 = c2 ,如果(x, y, z)是它的解,那么,它们同乘以任意一个正整数 d 得到的数组(xd, yd, zd)显然也是它的解,为了去掉这种多余的重复的解,我们引入“既约勾股数”的概念[6]

定义1  称勾股数(a, b, c)“既约的”若 a, b, c 没有大于 1 的公因子。

给定任意一组勾股数(a, b, c),设 d 是 a, b, c 的最大公因子,那么(a/d, b/d, c/d)就是既约勾股数。

现在,我们来证明(你大概已经预料到了这一结果)公式(4)囊括了所有的既约勾股数,更准确地说,我们有下面的结论:

(勾股数第一公式) 任何一个既约勾股数都可以表示为

 其中 p,q 为两个互质的奇数且 p>q>0.        

我们之所以要加上 p, q 是互质的奇数这一条件(两个数称为互质的,若它们没有大于1的公因子),是因为这保证了勾股数 是既约勾股数,这是很容易证明的,请读者作为热身练习(为接下来的“攻坚”作准备)自己证明之。

但反过来,要证明所有的既约勾股数都必定是这种形式,并不是一件容易的事,需要十分慎密又巧妙的推理(你要像一个真正的侦探一样,不放过一丝蛛丝马迹,凭着滴水不漏的推理一步一步地缩小嫌疑犯的范围,最后铁板钉钉地抓住真凶)。

 

证明提示:

(一)首先,若(a, b, c)是既约勾股数,不失一般性可设 a 是奇数。(这一步的作用只是排除出现讨厌的因子 2,参见注[5]

证明第一步

(二)然后,根据我们前面的求解程序,只要证明(实际上这一点我们已经在前面展示了,所谓证明只是将它严格化和一般化),在对 a2 的所有分解中,当且仅当将 a2 分解成两个互质的平方数之乘积即令 a2 = p2 × q2 且 p, q 互质时,我们得到的勾股数才是既约的,任何其他的分解方式所得到的勾股数一定是非既约的。

温馨提示:知道算术基本定理即素因子唯一分解定理(每一个整数都能以唯一的方式分解成素因子的乘积)对该步的证明是有帮助的。

证明第二步

 

表2: 由 勾股数第一公式生成的勾股数

p q a = pq b =(p2 - q2)/2 c  =  (p2 + q2)/2
3 1 3 4 5
5 1 5 12 13
7 1 7 24 25
9 1 9 40 41
11 1 11 60 61
13 1 13 84 85
15 1 15 112 113
17 1 17 144 145
19 1 19 180 181
5 3 15 8 17
7 3 21 20 29
11 3 33 56 65
13 3 39 80 89
17 3 51 140 149
19 3 57 176 185
7 5 35 12 37
9 5 45 28 53
11 5 55 48 73
13 5 65 72 97
17 5 85 132 157
19 5 95 168 193
9 7 63 16 65
11 7 77 36 85
13 7 91 60 109
15 7 105 88 137
17 7 119 120 169
19 7 133 156 205
11 9 99 20 101
13 9 117 44 125
17 9 153 104 185
19 9 171 140 221
...... ...... ...... ...... ......



 注 解

[注1] 但中国古人也并不是完全缺乏证明的意识和才华,三国时吴国的赵爽在给《周髀算经》所作的注中就给出了勾股定理的一个漂亮的证明,他用的方法是面积割补法(即著名的赵爽弦图,2002年在北京召开的国际数学家大会上曾用赵爽弦图作为会徽)。

[注2] 这被称为不定方程,也称为丢番图方程(Diophantine equation),因为公元三世纪左右的古希腊数学家丢番图(Diophantus)是第一个思考并系统地求解此类方程的人。

[注3] 注意如果我们将 a2 分解成 a×a,那么将得到平凡的解(a, 0, a)。

[注4] 当 a = 1 时我们得到(1,0,1),因为我们定义勾股数为正整数,故将它排除。

[注5] 倘若你是一个心细如发的人,那么你会看出这里我们有一个疏漏:如果 p 等于 2,那么它可能不是这三个数的公因子,因为在后面这两个数中它被分母中的 2 消掉了.

在接下来证明 定理1 的过程中,你同样会碰到这个讨厌的 2 所带来的麻烦,好在这个问题在下面引入“既约勾股数”的概念后就可以得到巧妙的解决,因为如果只考虑既约勾股数,那么我们总可以设 a 是奇数(参见前面的证明提示(一)),这样一来,自然 p,q 也是奇数,从而从根本上铲除了恼人的因子 2 .

[注6] 这是笔者类比“既约分数”创造的名词(回忆一个分数 a/b 称为既约分数,若 a, b 没有大于1的公因子)。