欣賞由[遇見(jiàn)數(shù)學(xué)]提供 3Blue1Brown 視頻, 或者看下面整理編寫(xiě)的文字+動(dòng)圖版: 正文當(dāng)你第一次學(xué)到勾股定理的時(shí)候, 一定會(huì)見(jiàn)到 3,4,5 為邊的三角形, 或者5, 12, 13 為邊的三角形. 并覺(jué)得能存在這些例子是理所當(dāng)然的. 即兩個(gè)整數(shù)的平方和恰好能等于另一個(gè)整數(shù)的平方.
但是把這個(gè)指數(shù)換成比 2 大的任何整數(shù), 這樣的方程就不再會(huì)有任何整數(shù)解. 這就是著名的費(fèi)馬大定理
滿足 a2+b2=c2a2+b2=c2 的三個(gè)整數(shù) a, b, c 有一個(gè)專門(mén)的名字, 叫做勾股數(shù)(Pythagorean triple, 畢氏三元組). 今天的視頻里, 我們想要找到所有的勾股數(shù). 并且有圖像表示出這些數(shù)組直接的關(guān)系. 這個(gè)是古老的問(wèn)題, 古巴比倫人早在公元前 1800 年, 畢達(dá)哥拉斯生前一千多年就在泥板上刻下了許多勾股數(shù).
現(xiàn)在來(lái)看下我最喜歡的定理證明, 點(diǎn)擊播放 GIF 動(dòng)圖來(lái)查看動(dòng)圖.
好了,,回到尋找整數(shù)解的問(wèn)題. 我們先換一種問(wèn)法: 在坐標(biāo)系里所有的整數(shù)坐標(biāo)的點(diǎn)中, 也就是這些網(wǎng)格線相交的點(diǎn). 有哪些點(diǎn)到原點(diǎn)的距離是正數(shù). 比如這個(gè)(3,4)點(diǎn)距離原點(diǎn)的距離為 5, 而點(diǎn)(12, 5)離原點(diǎn)是 13. 所以想找勾股數(shù)就只需要找在這些網(wǎng)格點(diǎn)中, 離原點(diǎn)距離是整數(shù)的點(diǎn).當(dāng)然大多數(shù)點(diǎn),,比如(2,1)到原點(diǎn)的距離并不是整數(shù), 但一定是某個(gè)整數(shù)的平方根: √55.
現(xiàn)在我們把坐標(biāo)系想象成是復(fù)平面, 將平面中的每一個(gè)點(diǎn), 比如 (2,1) 都對(duì)應(yīng)一個(gè)復(fù)數(shù), 比如 (2,1) 對(duì)應(yīng) 2+i2+i . 想要得到離原點(diǎn)距離是整數(shù)的新的點(diǎn), 做一個(gè)很簡(jiǎn)單的辦法取平方. 代數(shù)上講如果你平方米一個(gè)復(fù)數(shù), 展開(kāi)乘積, 合并同類(lèi)項(xiàng)之后, 因?yàn)樗羞\(yùn)算都只是整數(shù)之間的加減乘, 所以最后的結(jié)果中每個(gè)部分也都是整數(shù), 這里得到 3+4i3+4i .
同時(shí)我們也可以從幾何的角度考慮復(fù)數(shù)的乘法, 我們?nèi)脑c(diǎn)到這個(gè)數(shù)的線段, 注意它和 x 軸的夾角 θθ 以及線段的長(zhǎng)度. 在這里,,它的長(zhǎng)度是 √55 . 任何數(shù)和這個(gè)復(fù)數(shù)相乘, 就是將那個(gè)數(shù)選轉(zhuǎn) θθ 角度, 再拉伸到 √55 倍.(如不理解可查看: 不可能的數(shù)字:復(fù)數(shù)) 所以當(dāng)你將這個(gè)數(shù)和自身相乘的時(shí)候,,角度就會(huì)翻倍; 長(zhǎng)度就變成了原先的平方, 因?yàn)樗鹊拈L(zhǎng)度是某個(gè)整數(shù)的平方根, 那么長(zhǎng)度的平方就一定是一個(gè)整數(shù), 這里是 5.
我們?cè)谑橇硗庖粋€(gè)例子, 先選一個(gè)有整數(shù)坐標(biāo)的復(fù)數(shù), 比如 3+2i3+2i , 它到原點(diǎn)的距離是 √32+2232+22, 也就是 √1313. 平方后得到5+12i5+12i , 也就是 5, 12, 13 這組勾股數(shù).
這樣看來(lái), 這個(gè)過(guò)程就顯得很神奇. 不論你選那個(gè)網(wǎng)格點(diǎn), 比如 4+i4+i , 把它平方, 就能得到一組勾股數(shù) 15,8,17 . 用代數(shù)的方法演算這個(gè)式子,,發(fā)現(xiàn)它確實(shí)是對(duì)的. 你也可以試試帶入其他的任意整數(shù)來(lái)得到勾股數(shù). 當(dāng)然其中有些結(jié)果沒(méi)有什么意義, 比如, 如果起始點(diǎn)的兩個(gè)坐標(biāo)相等, 或者有一個(gè)坐標(biāo)是 0, 平方的結(jié)果虛部或?qū)嵅科渲幸粋€(gè)也就是 0. 比如 2+2i2+2i 的平方是 8i8i. 原則上著確實(shí)是一個(gè)到原點(diǎn)距離是整數(shù)的網(wǎng)格點(diǎn), 但對(duì)于這個(gè)點(diǎn)對(duì)應(yīng)的勾股數(shù)就只是 02+82=8202+82=82 . 但大多數(shù)時(shí)候, 將復(fù)數(shù)平方是一種很簡(jiǎn)單的得到非平凡勾股數(shù)的辦法. 甚至可以得到一個(gè)漂亮的公式:
也就是說(shuō)你輸入一對(duì)整數(shù), 它就會(huì)輸出一組勾股數(shù). 有一個(gè)很好的可視化方法, 就是把平面上的每一個(gè)點(diǎn) z 移動(dòng)到 z2z2 . 比如把 3+2i3+2i 移動(dòng)到 5+12i5+12i ; ii 會(huì)被旋轉(zhuǎn) 90°90°.
我們對(duì)平面上每個(gè)點(diǎn)都如此操作, 結(jié)果會(huì)是這樣.
這些網(wǎng)格會(huì)編程拋物線型的弧線, 而它們的每一個(gè)交點(diǎn)都是原先的網(wǎng)格點(diǎn), 所以也就對(duì)應(yīng)一組勾股數(shù). 也就是說(shuō), 如果三角形的斜邊是其中的一個(gè)點(diǎn)到原點(diǎn)的連線, 且直角邊與坐標(biāo)軸平行的話, 這個(gè)三角形的三條邊就都是整數(shù)了.
這個(gè)方法好就好在, 如果你簡(jiǎn)單地去看所有的勾股數(shù)組, 他們看起來(lái)就很隨機(jī), 沒(méi)有什么規(guī)律. 但現(xiàn)在看來(lái), 這些數(shù)組是有條理的: 坐落在這些均勻分布的弧線交點(diǎn)上. 也許你會(huì)好奇這些點(diǎn)是不是涵蓋了所有的勾股數(shù), 很遺憾,,并不是. 比如你不能得到 6+8i6+8i . 雖然 6, 8, 10 確實(shí)是一組勾股數(shù), 但沒(méi)有任何整數(shù) u, v 使得 (u+iv)2=6+8i(u+iv)2=6+8i , 同樣的你也不能得到 9+12i9+12i. 但這也并不新鮮, 因?yàn)樗鼈兤鋵?shí)都是3, 4, 5的倍數(shù).
稍后會(huì)解釋, 為什么每一個(gè)我們無(wú)法得到的勾股數(shù)組都都是某個(gè)我們已得到的數(shù)組的倍數(shù). 再舉一個(gè)例子,我們無(wú)法得到 4+3i4+3i , 沒(méi)有任何整數(shù) u, v 使得 (u+iv)2=4+3i(u+iv)2=4+3i . 事實(shí)上你不能等到任何虛數(shù)部分是奇數(shù)的數(shù). 但是用 8+6i8+6i 我們就能得到 8+6i8+6i . 所以雖然無(wú)法得到 4+3i4+3i,,但是它只是我們得到某個(gè)點(diǎn)(8+6i8+6i)的一半而已. 順帶提一下, 我們永遠(yuǎn)不用把任何結(jié)果縮小到一半以下.
一個(gè)找回我們錯(cuò)過(guò)這些倍數(shù)的辦法, 就是取每個(gè)我們能得到的點(diǎn), 然后過(guò)它從原點(diǎn)畫(huà)一條射線, 只要把這條射線通過(guò)的所有格點(diǎn)標(biāo)注起來(lái), 就會(huì)得到之前錯(cuò)過(guò)的所有點(diǎn).
再來(lái)看一個(gè)更大范圍的圖形:
對(duì)所有的點(diǎn)如此操作,,我們就會(huì)得到所有的勾股數(shù)組, 每一個(gè)你見(jiàn)過(guò)或還沒(méi)見(jiàn)過(guò)的邊長(zhǎng)都是整數(shù)的直角三角形, 都能在這個(gè)圖里找到. 想知道原因的話, 我們要換一個(gè)角度來(lái)考慮, 研究在單位圓上, 有理數(shù)坐標(biāo)的點(diǎn). 如果你把 a2+b2=c2a2+b2=c2 左右,同時(shí)除以 c2c2. 得到 a2c2+b2c2=1a2c2+b2c2=1 . 這就對(duì)應(yīng)了單位圓上 x2+y2=1x2+y2=1 上的一個(gè)點(diǎn), 而且 x 和 y 的坐標(biāo)都是有理數(shù), 這些點(diǎn)叫做單位圓上的有理點(diǎn).
反過(guò)來(lái), 如果你在單位圓上找到一個(gè)有理點(diǎn), 并且讓它的坐標(biāo)去乘 x 和 y 的任何公分母. 得到的就是到原點(diǎn)距離是整數(shù)的一個(gè)整數(shù)坐標(biāo)點(diǎn). 比如 1213+5i131213+5i13 有理點(diǎn)得到的是 12+5i12+5i. 回到我們的圖像, 其中我們平方了每個(gè)網(wǎng)格點(diǎn), 并且對(duì)每個(gè)點(diǎn)都畫(huà)了一條射線, 來(lái)得到我們可能錯(cuò)過(guò)的所有勾股數(shù). 如果你把這些點(diǎn)都通過(guò)畫(huà)出的射線, 投影到單位圓上, 你就會(huì)得到很多單位圓上的有理點(diǎn). 注意, 這里我只畫(huà)了有限多的點(diǎn)和線, 如果我畫(huà)了對(duì)應(yīng)的所有網(wǎng)格點(diǎn)平方的無(wú)限條射線的話, 它們就會(huì)充滿整個(gè)屏幕.
如果我們的方法是不完整的, 也即是說(shuō), 如果我們錯(cuò)過(guò)了某個(gè)勾股數(shù)組, 那么說(shuō)明, 圓上一定有某個(gè)有理點(diǎn)用之前的方法是無(wú)法達(dá)到的, 下面來(lái)說(shuō)明一下為什么這是不可能的. 選取任何一個(gè)有理點(diǎn), 畫(huà)一條它與 (-1,0) 的連線, 當(dāng)你計(jì)算這條線的斜率的時(shí)候, 你會(huì)發(fā)現(xiàn) △y△y 和 △x△x 都是有理數(shù), 所以斜率也一定是有理數(shù).
如果我們能證明, 取平方的方法, 可以得到所有的有理數(shù)斜率的話, 我們就能保證得到所有的單位圓上的有理點(diǎn)了. 我們從頭整理下思路, 先是從某個(gè)有整數(shù)坐標(biāo)的點(diǎn) u+ivu+iv 開(kāi)始, 這個(gè)點(diǎn)和 x 軸形成了某個(gè)夾角 θθ , 平方之后, 得到的角度就會(huì)是 2θ2θ . 當(dāng)然,,當(dāng)你把點(diǎn)投影到單位圓上時(shí), 因?yàn)槭茄赝粭l射線, 所以單位圓上對(duì)應(yīng)的有理點(diǎn)與 x 軸的夾角也是 2θ2θ .
這里我要提一點(diǎn)圓的幾何特性: 取圓心和圓周上兩點(diǎn), 連線組成的夾角(圓心角), 它總是等于 2 倍的圓周上的這兩點(diǎn)和任意另一點(diǎn)的連線夾角(圓周角), 只要第三點(diǎn)不在前兩點(diǎn)的中間就好
在這里我們就能知道, 單位圓上的有理點(diǎn)和 (-1,0) 的連線與 x 軸形成的角度一定是 θθ . 換句話說(shuō), 這條線(下圖粉紅色線)與最初的點(diǎn) u+ivu+iv 到原點(diǎn)的連線, 斜率相等.
但給定整數(shù) u 和 v 之后, 后者的斜率, 就是 vuvu , 而且我們可以選擇任意的整數(shù) u 和 v . 所以我們確實(shí)能得到所有的有理數(shù)斜率. 由任意 u 和 v 決定的所有射線, 一定經(jīng)過(guò)單位圓上每一個(gè)有理點(diǎn). 因此我們的方法就一定能找到所有可能的勾股數(shù).
最后附[遇見(jiàn)數(shù)學(xué)]制作的兩張圖片, 第一張 GIF 動(dòng)圖繪制的第一象限內(nèi)斜邊小于 2000 內(nèi)的所有勾股數(shù), 觀察其中的規(guī)律: 直角三角形斜邊小于 10000 內(nèi)的所有勾股數(shù): 「予人玫瑰, 手留余香」 如果感到本文有些許幫助, 感謝轉(zhuǎn)發(fā), 支持本號(hào)更快發(fā)展! 撥開(kāi)知識(shí)的層層密林,,探尋美妙數(shù)學(xué)中的趣味。 感謝關(guān)注遇見(jiàn)數(shù)學(xué)!
|