史上最賤的數學題,世界上99.999995%的人根本沒有任何機會解決它
看似侮辱智商
實則智商壓制
這是一篇最近很火的文章。一個常見題目,貌似易解的題目出發,發現背後竟然藴藏了深奧的大道理。這其實是很多問題,尤其是數論題目的特點:很容易理解,但很難做。
在我碰到這道題之前,它已經被某人心懷惡意地發佈在網絡上,成為流行的朋友圈圖片,肆意捉弄那些老實人。我根本沒意識到我偶然看到的這道題到底是個什麼樣的怪物。它長這個樣:
你可能已經在朋友圈看到過很多這樣的圖了,它們一般都是標題黨的垃圾:什麼“95%的麻省理工畢業生無法解決的問題”,這個“問題”要麼很空洞,要麼偷換概念,要麼就是不重要的腦筋急轉彎。
但這個問題不是。這張圖片就是一個精明的,或者説陰險的圈套。
大概99.999995%的人根本沒有任何機會解決它,甚至包括一大批頂級大學非數論方向的數學家。它的確是可解的,但那真的真的不得了的難。
你可能會這樣想,如果所有的嘗試都失敗了,我們還可以直接用電腦計算大力出奇跡。這年頭,寫個電腦程序解決這種形式簡單的方程真是太容易了,只要它真的有答案,那電腦最終一定會找出來。但很抱歉,大錯特錯。
用電腦暴力計算在這裏毫無用處。
如果不把Quora的讀者都當作橢圓曲線的入門者的話,我不知道怎麼才能寫出適合的答案。我在這能做的只是一個簡要的概覽。主要參考文獻是最近Bremmer和MacLeod2014年在《數學和信息學年鑑》上發表的一篇名為《一個不一般的立體代表性問題》的精彩論文。
讓我們開始吧。
我們求解的是這個方程的整數解:
面對任何方程,你需要做的第一步是
嘗試並確定問題背景
。這到底被劃歸到哪一類問題?嗯,我們被要求找到整數解,所以這是一個數論問題。就題而言,方程涉及有理函數,但很顯然我們可以用通分移項的方法化成一個多項式函數,所以我們實際上解得是一個丟番圖方程。正數解的要求有一點不同尋常,接下來我們會看到這個要求會讓問題變得多麼難。
現在,我們有了多少變量?這個問題看起來很蠢:很明顯,我們有三個變量,分別是a、b、c。讓我們慢一點來。一個科班出身的數論學家第一眼就能察覺到,這個方程是齊次的。這意味着如果是方程的一個特解的話,那都是它的解。你能看出為什麼嗎?給每一個變量乘一個常數沒有改變方程的結構,因為分子分母全部都約掉了。
這意味着這個方程看上去像是三維的,但它實際上只有兩維。在幾何學中,它對應着一個面。這個面是由一條過原點的線旋轉形成的,可以通過截取的單平面來理解。這是一條投影曲線。
在大多數初等的情形,這種降維可以這麼解釋:無論解是什麼,我們都可以分為兩類,c=0的情形和c≠0的情形。第一類僅僅涉及兩個變量,而第二類情形我們可以對所有解同時除以c並得到一個c=1的解。因此我們可以在c=1的情況下尋找a和b的有理數解,只要乘以一個公分母,就得到了a,b,c的正數解。一般來説,齊次方程的整數解對應一個低一個維度的非齊次方程的有理數解。
接下來的問題是:這個方程的次數是什麼?次數指的是各項中最高的冪次,對於涉及多個變量相乘的項,冪次就是各變量冪次之和。舉個例子,如果某項為,那此項的次數就是7=2+1+4。
丟番圖方程在不同次數難度完全不一樣,寬泛地説:
一次的非常簡單。
二次的也被理解得非常透徹,一般能用相對初等的方法解決。
三次的就是滿山滿海的深奧理論和數不勝數的開放問題。
四次的,嗯,真的真的很難。
我們這個方程是三次的。
為什麼?嗯,去分母之後就很顯然了:
即使沒有合併同類項,你也可以明白地看到次數為3:沒有超過三個變量的乘積,最後我們得到的是類似a³、b²c、abc這樣的項,而沒有冪次超過3的。合併同類項後,方程整理如下
你可能會反對這樣的變形:因為這樣獲得的解可能恰好使某個分母等於,使得原方程沒有意義。這是對的,我們的新方程的確有些解不與原方程對應。但這是好事。這個多項式形式給原方程打上了一些補丁使得它便於處理;對於我們找到的任何特解,只需要代入原方程檢驗一下分母等不等於就可以了。
事實上,多項式方程很容易處理。比如説,a=−1,b=1, c=0。這是好事:我們有了有理數解,或者説有理點。這意味着我們的立體方程實際上是個橢圓曲線。
當你發現這個方程是橢圓曲線時,你會喜出望外,然後悲從中來,因為你發現橢圓曲線問題是個龐然大物。這個方程是一個展現橢圓曲線理論強大的經典案例,證明它可以被用來尋找一些爆難問題的解。
我們需要做的第一件事把橢圓曲線化成魏爾斯特拉斯形式。這是一個長得像這樣的等式:
或者有時候也會化成
眾所周知,任何橢圓曲線都可以化成這種形式。如果想講清楚怎麼把橢圓曲線化成這種形式,那可就是長篇大論了。你只需要知道,這種變形是完全機械的操作。現在有若干計算機函數包可以輕而易舉地幫你搞定這件事。
但即使你不知道如何完成變換,驗證它也是很容易的,或者説至少是機械的。對於我們而言,需要的變換由令人生畏的公式導出。
我知道這看上去就像隨意的巫毒把戲,但請相信我它不是。一旦你完成了這些變形,沉悶但異常直白的代數計算可以證明它是對的。
這個方程儘管看起來很原方程長得不怎麼像,但確是如假包換的忠實模型。在圖像上它長成這樣,一條有着兩個實部的經典橢圓曲線:
右邊的“魚尾”連續延伸至正負無窮。左邊的封閉橢圓曲線也將給我們帶來解決問題的驚喜。給定這個方程的任意解,你都可以通過下面的等式還原所求的a,b,c:
你需要記住,三元組是用投影曲線理解的——無論你從這些方程中獲得什麼數值,你都可以隨意乘上一個你想要的常數。
對於我們展示的兩個圖像,無論是從a,b,c到x,y還是反過來,都可以證明這兩個方程從數論的角度是等價的:一個方程的有理數解可以導出另一個方程的有理數解。專業術語叫做雙向有理等價,而這個概念在代數幾何裏面是一個非常基本的。如我們之前注意到的那樣,可能存在一些不相互對應的特殊點,而情形是a+b,a+c或者b+c恰好等於。這是構造雙有理等價的必要代價,而不需要對此有任何擔心。
讓我們來看看手裏的這個例子。它的橢圓曲線存在一個很好的有理數點:x=−100, y=260。可能找到這個點不太容易,但檢驗它在曲線上就很簡單了:直接代入原方程檢驗等式兩邊是否相等。我們可以簡單地驗證a,b,c代入的結果。
我們得到了a=2/7,b=−1/14,c=11/14,既然我們可以隨意乘以一個公分母,那我們就可以變形為a=4,b=−1,c=11.
代入原方程,的確
你可以很容易地驗證。這就是我們原方程的一個簡單整數解——但很遺憾,不是正整數解。
找到這個解用手算不太容易,但用一點耐心即使不用計算機也不算太難。
它將成為我們找到正數解的緣起之地。
現在,一旦你在橢圓曲線上找到了有理數點,如P,你就可以利用弦切技巧進行加法,生成其它的有理數點。
圖解:橢圓曲線上點的加法
在任何情形下,在一個域中給定一個方程,解可以被視為位於R²或者Q²的點,而相加律就是弦—切結構的變形:想要對兩個點P₁和P₂做加法,首先構造一條過二點的直線,若P₁,P₂重合,那麼這條直線就是曲線的切線。找到直線與曲線的第三個交點P,對O和P重複上述操作,再次得到的交點就是P₁+P₂。當O點被選為無窮遠處的點,圖像就如上所示。更詳細的見原作者的Quora回答previous,再詳細的請去翻代數幾何。
一開始,我們可以通過作P點的切線,找到它和曲線再次相交的點,以此增加P點的值。結果看上變得有點嚇人:
同樣的,這個新的點也對應一組a,b,c的值:
這個解用手算就很困難,但用電腦就是小意思了。然而,它還不是正的。
當然,困難嚇不倒我們,我們繼續計算3P=2P+P,操作方法就是連接P和2P找到與曲線的第三個交點再與O點相連找到第四個交點。同樣的,我們計算a,b,c,然而還是同樣的,結果不是正數。以此類推,計算4P,5P等等等等。直到我們計算到9P。
9P=
很明顯這不是人算的了,但交給機器,這也就是9次簡單的幾何程序迭代。對應的a,b,c值也很恐怖:
a=154476802108746166441951315019919837485664325669565431700026634898253202035277999,
b=36875131794129999827197811565225474825492979968971970996283137471637224634055579,
c=4373612677928697257861252602371390152816537558161613618621437993378423467772036
這些是80位數!你不可能通過暴力計算找到一個80位數
!但無論它看上去怎麼不可思議,但這些數值代回原方程,的確等於4:
讓我們回到理論本身再探討一下。定義在有理數上的橢圓曲線存在一個階,它表示我們最開始至少需要知道多少個有理點才能通過弦切方法找到曲線上所有的有理數點。我們這條橢圓曲線的階等於1,説明雖然它上面有無窮多個有理點但都是由一個有理點生成的,而這個點不是別的恰好就是我們最開始的那個P點。
計算階數並找到這樣的一個生成子的算法非同尋常,但SageMath只需要幾行代碼1秒鐘以內就搞定了。你可以查看我的代碼,它從頭開始再現了整個解法,當然其中有Sage內置的橢圓曲線處理方法。
在我們看來,P點位於曲線的橢圓部分,而其它的mP點也一樣。它們會逐漸跑遍整個橢圓並最終均勻地分佈在整個曲線上。而我們是很幸運的,因為只有很少一部分橢圓能產生a,b,c的正數解:它們是下面這張圖加粗的部分。
P,2P等點並不在黑色加粗的部分,但9P恰好在,使我們得到一個80位的正整數解。
Bremmer和MacLeod還研究瞭如果我們把等式右邊的4換成其它的東西會怎麼樣。如果你覺得我們的解太大了,那是因為你還沒見識到把4換成178的結果。那就不僅僅是80位了,你需要398,605,460位數。對,你沒看錯,那個解就是這麼大。如果你試試896,位數就飆升到數萬億位了。沒錯,數萬億位的解,屬於這個看上去人畜無害的方程。
上述的丟番圖方程就是一個係數很小但整數解位數巨大的駭人案例。它不僅僅是令人生畏的符號,而是一項意義深遠的研究。
希爾伯特第十大問題的否證陳述意味着,隨着係數逐漸增大,解的增長將變為一個不可計算的方程——因為如果它是可計算的,那我們就能得到一個解開丟番圖方程的簡單算法,而事實上並沒有,無論是簡單的還是複雜的。
何其美妙、何其揶揄的小小方程!
本文由超級數學建模編輯整理
本文來源於南京大學科幻愛好者協會:
https://www.quora.com/How-do-you-find-the-positive-integer-solutions-to-frac-x-y+z-+-frac-y-z+x-+-frac-z-x+y-4?utm_source=qq&utm;_medium=social