畢氏定理上的素數

 

畢氏數

從留言板網友 Patrick Lau 的留言中引發靈感,試看畢達哥拉斯定理 (Pythagoras Theorem 或畢氏定理) 中的素數。

我們對畢氏定理相信不會感到陌生,也許它是我們所學的第一道定理。這畢氏定理在中國又名商高定理 (Soon Go Theorem) 或勾股定理。

 

相傳古希臘數學家畢達哥拉斯 (Pythagoras 約前 569 - 約前 475) 從直角三角形 (Right Angle Triangle) 的地板中引發靈感,發現直角三角形的斜邊的平方正好是另外兩邊的平方和,即:

這顯淺而實用定理,我們在初中數學課定必接觸得到。若我們進一步規定式中的 a、b、c 均為正整數,這便是所謂的畢達哥拉斯數 (Pythagoras Numbers) 或畢達哥拉斯三元數 (Pythagorean Triple),簡稱畢氏數或勾股數。

 

這三數組中會否全為素數,答案是不會。

原來古希臘的數學家已知要使三整數 a、b、c 符合畢氏定理,那必須有兩數 u 和 v 使:

( a, b, c ) = (u2 - v2, 2uv, u2 + v2)

若要達至本原解 (Primitive Solution) 即 ( a, b, c ) = 1 (三數的最大公因子為 1 ),我們必須要求 u > v 、(u, v) = 1及 u、v 為一奇一偶。這時的解便成了本原畢達哥拉斯數 (Primitive Pythagoras Numbers)

若 u、v 為兩個奇數或兩個偶數的話,則 a 、b 、c三數均為偶數,也不符合  ( a, b, c ) = 1 的要求了。

 

讓我們先找幾組較小的 u、v 來看看先:

  u=2 3 4 5 6 7 8 9 10 11
v=1 (3, 4, 5)   (15, 8, 17)   (35, 12, 37)   (65, 16, 67)   (99, 20, 101)  
2   (5, 12, 13)   (21, 20, 29)   (45, 28, 53)   (77, 36, 85)   (117, 44, 125)
3     (7, 24, 25)       (55, 48, 73)   (91, 60, 109)  
4       (9, 40, 41)   (33, 56, 65)   (65, 72, 97)   (105, 88, 137)
5         (11, 60, 61)   (39, 80, 89)      
6           (13, 84, 85)       (85, 132, 157)
7             (15, 112, 113)   (51, 140, 149)  
8               (17, 144, 145)   (57, 176, 185)
9                 (19, 180, 181)  
10                   (21, 220, 221)

 我們不難發現 c = u2 + v2 必定是三數中最大的,但 a = u2 - v2 、b = 2uv 的大小則得看數值而定了。

 

要證明這是畢氏數的解不難。

只要把 a = u2 - v2 、b = 2uv 、c = u2 + v2 代入畢氏定理的式中,左右兩方均相等,即這是一種解。

再者,我們可以證明得到對於任意素數 p 均不可為  a = u2 - v2 、b = 2uv 、c = u2 + v2  的公因子,達至 ( a, b, c ) = 1的要求。

首先,我們規定了 u、v 為一奇一偶,即使 a、c 為奇而 b 為偶,則 2 不可能是三數的公因子了。

而對任意奇素數 p ,若 p 可整除三數,即 p 可整除  u2 - v2 + u2 + v2 = 2u2

同理 p 可整除  u2 - v2 - (u2 + v2) = 2v2,即 p 可整除 u 、v ,這和 (u, v) = 1 矛盾。

那麼三數便是本原解了。

 

此外,我們亦可以使用費波拿契數 (Fibonacci Number) 來產生畢氏數的,看下式:

( a, b, c ) = (Fn*Fn+3, 2Fn+1*Fn+2, Fn+12 +Fn+22)

又讓我們先找幾組小的費波拿契數來看看先:

n Fn Fn+1 Fn+2 Fn+3 a b c
1 1 1 2 3 3 4 5
2 1 2 3 5 5 12 13
3 2 3 5 8 16 30 34
4 3 5 8 13 39 80 89
5 5 8 13 21 105 208 233
6 8 13 21 34 272 546 610
7 13 21 34 55 715 1428 1597
8 21 34 55 89 1869 3740 4181
9 34 55 89 144 4896 9790 10946
10 55 89 144 233 12815 25632 28657

和第一道公式不一樣的,這回不保證一定得到本原畢氏數,但卻保證了大小順序。

 

要證明這是畢氏數的解也不難。

又不過是把三數代進畢氏定理原式,再展開便成:

左方 = (Fn * Fn+3)2 + (2Fn+1 * Fn+2)2 =  Fn2 * Fn+32 + 4Fn+12 * Fn+22

= Fn2 * (Fn+1 + Fn+2)2 + 4Fn+12 * Fn+22 = Fn2 * (Fn + 2Fn+1)2 + 4Fn+12 * (Fn + Fn+1)2

=  Fn4 + 4Fn3 * Fn+1 + 4Fn2 * Fn+12 + 4Fn2 * Fn+12 + 8Fn * Fn+13 + 4Fn+14

=  Fn4 + 4Fn3 * Fn+1 + 8Fn2 * Fn+12 + 8Fn * Fn+13 + 4Fn+14  

而右方 =  (Fn+12 + Fn+22)2 = (Fn+12 + (Fn + Fn+1)2)2 = (Fn+12 + Fn2 + 2Fn * Fn+1 + Fn+12)2

= (Fn2 + 2Fn * Fn+1 + 2Fn+12)2 =  Fn4 + 4Fn3 * Fn+1 + 8Fn2 * Fn+12 + 8Fn * Fn+13 + 4Fn+14 = 左方

 

 

畢氏數中的素數

因為 b = 2uv 必為偶數且不等於 2 ,當然找不到全素數的解了。

退一步,那 u2 - v2 以及 u2 + v2 都是素數,又可以嗎?

當然有的,我們最常見的 (3, 4, 5) 便是一例,還有 (5, 12, 13) 、(11, 60, 61) 、(19, 180, 181) 等亦是包含有兩個素數的。

我們也許可以看到,上列的例子中,有兩數僅相差一,這是否必然的呢?

 

我們知道 u2 - v2 = (u - v) (u + v),要使 u2 - v2 為素數只有使 u - v = 1 及 u + v 為素數。

而  u2 + v2 - 2uv = (u - v)2 = 1,故那相差為一的現象是必然的。這樣的畢氏數,我們稱之為孿生畢達哥拉斯數 (Twin Pythagoras Numbers)。

 

多了一個又怎麼樣

之前已談過畢達哥拉斯三元數是不定方程 (Diophantine Equation)  a2 + b2 = c2 的 正整數解,若然我們在方程的左方多添一項,即

a2 + b2 + c2 = d2

又會否有正整數解呢?

在幾何學 (Geometry) 上,該解為一整邊長的長方體 (Cuboid) 的空間對角線 (Space Diagonal) 也為整數之意。

整數解?當然有的,如 (a, b, c, d) = (2, 3, 6, 7) 便成。這些數組,我們稱之為畢達哥拉斯四元數 (Pythagorean Quadruple)。

其實我們也有導出不同解的公式:

a = m2 + n2 - p2 - q2

b = 2(mq + np)

c = 2(nq - mp)

d = m2 + n2 + p2 + q2

其中 m, n, p, q 均為整數。

 

如取  (m, n, p, q) = (1, 9, 7, 4),我們便有 (a, b, c, d) = (17, 134, 58, 147)。

留意一點,上式計算出來的數值或會出現負數,但我們理解畢達哥拉斯四元數的正負號不影響其解性,故我們通常取正數值作解。

下列為一些解值較小的本原解 (1, 2, 2, 3)、(2, 3, 6, 7)、(1, 4, 8, 9)、(4, 4, 7, 9)、(2, 6, 9, 11)、(6, 6, 7, 11)、(3, 4, 12, 13)、(2, 5, 14, 15)、(2, 10, 11, 15)、(1, 12, 12, 17)、(8, 9, 12, 17) 等。

要證明上式計算的 (a, b, c, d) 為畢達哥拉斯四元數,倒不難,代入一試便知。這留給各位讀者自娛了。但要證明這方法可計出所有本原解,倒不容易。

 

參考文獻及網址:

馮克勤, 費馬猜想, 北京:科學出版社, 頁 21-24, 2002

Wikipedia. "Pythagorean Quadruple." From Wikipedia. http://en.wikipedia.org/wiki/Pythagorean_quadruple.