- 計算進(jìn)化史:改變數(shù)學(xué)的命運(yùn)
- (法)吉爾·多維克
- 5662字
- 2019-01-05 10:13:45
第一篇 古老的起源
第1章 從史前數(shù)學(xué)到希臘數(shù)學(xué)
數(shù)學(xué)史往往是從公元前5世紀(jì)的希臘開始講起的。畢達(dá)哥拉斯創(chuàng)立了算術(shù),泰勒斯和阿那克西曼德創(chuàng)立了幾何,奠定了古代數(shù)學(xué)的兩大分支。算術(shù)和幾何的創(chuàng)立,無疑是數(shù)學(xué)史上的重大突破。然而,這樣的講法卻忽略了一個重要的時代,也就是所謂的“史前”數(shù)學(xué)。人們并沒有等到公元前5世紀(jì)才開始解決數(shù)學(xué)問題,特別是那些日常面臨的具體數(shù)學(xué)問題。
會計師和土地測量師
“數(shù)學(xué)”活動最古老的痕跡之一是在美索不達(dá)米亞發(fā)現(xiàn)的一塊泥板,它可以追溯到公元前2500年。這塊泥板記錄了這樣一個計算:如果一個谷倉里有1152000份糧食,每個人分得7份,一共可以分給多少人呢?不出所料,結(jié)果是164571人,即用1152 000除以7得到的結(jié)果。看來,美索不達(dá)米亞的會計師在算術(shù)“誕生”之前很久就知道怎么做除法了。甚至,書寫完全有可能就是為了記賬才發(fā)明的——雖然這些事情很難說得準(zhǔn),但若真是如此,數(shù)字就比字母發(fā)明得還要早了。有些人也許不愿意接受這種推測,但我們所有的書寫文化,很可能都要?dú)w功于不怎么浪漫的會計行當(dāng)呢!
美索不達(dá)米亞和埃及的會計師不僅會做乘除法,而且掌握了許多其他的運(yùn)算,比如解二次方程等。土地測量師則會計算矩形、三角形、圓形的面積。
“無窮”的闖入
會計師和土地測量師創(chuàng)造的技法構(gòu)成了史前的算術(shù)和幾何。那么,公元前5世紀(jì)的希臘到底發(fā)生了什么特別的事情,獨(dú)獨(dú)讓這個時刻成為了數(shù)學(xué)史的開端呢?想要搞清楚這一點(diǎn),讓我先舉個例子吧。畢達(dá)哥拉斯有個學(xué)生,姓名已然不可考了,但他解決了這樣一個問題:比如以米為單位,要找出一個等腰直角三角形,讓三條邊的長度都是自然數(shù)。因?yàn)槿切问堑妊模瑑蓷l短邊的長度一樣,我們就設(shè)這個長度為x,然后設(shè)長邊,也就是斜邊的長度為y。因?yàn)檫@又是一個直角三角形,根據(jù)畢達(dá)哥拉斯定理, y2就等于x2+x2。這個問題最終歸結(jié)為:找出兩個自然數(shù)x和y,使得2×x2=y2。讓我們來試試4以內(nèi)所有x和y的可能性吧(見表1.1)。
表1.1 4以內(nèi)x與y的所有可能性

在所有這些情況里,2×x2都不等于y2。我們還可以在更大的數(shù)字范圍里繼續(xù)尋找,事實(shí)上,畢達(dá)哥拉斯學(xué)派很可能尋找了很久,卻沒能找到解。后來,他們終于相信這個解不存在。他們是怎么說服自己這個解不存在的呢?顯然不是試遍了所有的數(shù)對,因?yàn)檫@樣的數(shù)對有無窮多個。你就算試到1000甚至100萬,證實(shí)沒有數(shù)對能滿足條件,可你還是沒法保證在更大的數(shù)字里面不可能有解……讓我們來重新構(gòu)建一個思路吧,也許畢達(dá)哥拉斯學(xué)派就是由此得出這個結(jié)論的。
首先,在找解的時候,我們只要在x和y至少有一個是奇數(shù)的情況里找就行了。因?yàn)楸确秸fx =202, y =214是一組解,那么把兩個數(shù)都除以2就可以得到另一組解x=101, y=107。所以,至少要有一個數(shù)是奇數(shù)。再推廣一點(diǎn),我們?nèi)稳∫唤M解,把兩個數(shù)反復(fù)除以2,總歸會得到一組至少有一個數(shù)是奇數(shù)的解。如果這個問題有解,就必然存在x和y中至少有一個是奇數(shù)的解。
第二個想法是把數(shù)對分成4類:
● 兩個數(shù)都是奇數(shù);
● 第一個數(shù)是偶數(shù),第二個數(shù)是奇數(shù);
● 第一個數(shù)是奇數(shù),第二個數(shù)是偶數(shù);
● 兩個數(shù)都是偶數(shù)。
有了這兩個想法,我們就可以分4種情況證明,但這4種情況中沒有一個能夠構(gòu)成x和y至少有一個是奇數(shù)的解,所以這個問題就沒有至少有一個數(shù)是奇數(shù)的解,也就是說,這個問題根本沒有解。
我們先從第一類開始:x和y都是奇數(shù)的解不存在。因?yàn)槿绻?span id="yh9va3n" class="italic">y是奇數(shù),則y2也是奇數(shù)。它不可能等于2×x2,因?yàn)楹笳弑厝皇桥紨?shù)。這一論證也同樣適用于第二類,即x是偶數(shù)而y是奇數(shù)。第四類本身就不成立,因?yàn)楦鶕?jù)定義,數(shù)對中的兩個數(shù)不可能都是偶數(shù)。現(xiàn)在只剩下第三類,即x是奇數(shù)而y是偶數(shù)。但在這種情況下,2×x2的一半是奇數(shù),而y2的一半?yún)s是偶數(shù)——這兩個數(shù)不可能相等。
一個平方數(shù)不可能是另外一個平方數(shù)的兩倍——這個由畢達(dá)哥拉斯學(xué)派在2500多年前得到的結(jié)果,迄今在數(shù)學(xué)上仍占有重要地位。它證明了,如果你畫一個短邊長度為1米的等腰直角三角形,那么以米為單位的話,斜邊的長度是。這個數(shù)稍大于1.414,卻無法通過兩個自然數(shù)y和x相除得到。由此,幾何揭示了一些不能通過自然數(shù)的四則運(yùn)算,即加、減、乘、除得到的數(shù)。
幾個世紀(jì)之后,這個發(fā)現(xiàn)啟發(fā)數(shù)學(xué)家們構(gòu)造出了新的數(shù)——實(shí)數(shù)。但畢達(dá)哥拉斯學(xué)派沒有走到這一步,他們還沒有準(zhǔn)備好放棄自然數(shù)這個基本觀念。對他們而言,這個發(fā)現(xiàn)更像一場災(zāi)難,而不是前進(jìn)的動力。
這個問題的革命性不僅僅在于它對未來數(shù)學(xué)的巨大影響,還在于它本身的性質(zhì)及其解決的方法。首先,與美索不達(dá)米亞泥板上銘刻的把1152000份糧食除以7份的問題相比,畢達(dá)哥拉斯學(xué)派的問題更為抽象:美索不達(dá)米亞的會計師關(guān)注的是糧食的份數(shù),而畢達(dá)哥拉斯學(xué)派的問題僅涉及數(shù)字本身。同樣,這個問題的幾何形式并沒有談到三角形的田地,而就是三角形這個形狀。從三角形的田地到三角形,從糧食的份數(shù)到數(shù)字,邁向抽象這一步的意義不可小覷。田地的面積無非有幾平方千米。如果這個問題說的是三角形的田地而不是抽象的三角形,我們挨個嘗試x和y小于10000的所有數(shù)字,或許就能解決問題了。然而,抽象的三角形和田地不同,它的面積可以輕易大到上百萬甚至上億平方千米。
公元前5世紀(jì)的重大革命,就是抽象的數(shù)學(xué)對象與自然中的實(shí)際物體之間的分離,即使數(shù)學(xué)對象本身就是從實(shí)際物體中抽象出來的也不例外。
數(shù)學(xué)對象與自然物體之間的分離,讓一些人認(rèn)為數(shù)學(xué)不適合描述自然物體。這種看法一直活躍到伽利略的時代(公元17世紀(jì)),直至數(shù)學(xué)物理的成就將其打消。然而直到今天,一些人的腦海里還殘留著數(shù)學(xué)與人文科學(xué)毫無關(guān)系的觀點(diǎn)。用瑪麗娜·雅蓋洛的話來說,數(shù)學(xué)在語言學(xué)中的作用就是“將語言學(xué)作為‘人文科學(xué)’故而本質(zhì)上就不精確的那一面掩藏在數(shù)學(xué)公式里”。
自這場革命之后,數(shù)學(xué)研究的對象不再是必須與實(shí)際物體相關(guān)的幾何圖形和數(shù)字。研究對象性質(zhì)的變化,最終引發(fā)了解決數(shù)學(xué)問題的方法的革命。讓我們再來比較一下美索不達(dá)米亞泥板上的問題和畢達(dá)哥拉斯學(xué)派的問題各自的解決方法吧:第一個問題是通過計算解決的——做一個簡單的除法就行了,而要解決第二個問題,就需要進(jìn)行推理了。
要做除法,我們在小學(xué)里學(xué)過的算法就夠用了,美索不達(dá)米亞人也會做類似的計算。然而,要進(jìn)行畢達(dá)哥拉斯學(xué)派的推理,沒有任何算法會教你把數(shù)對分成四組。畢達(dá)哥拉斯學(xué)派應(yīng)該是發(fā)揮了想象力才得到了這個思路。也許有一個門徒明白了數(shù)字y不能是奇數(shù);過了幾個星期或者幾個月,另一個門徒又取得了一些進(jìn)展,發(fā)現(xiàn)x也不能是奇數(shù);然后,幾個月甚至幾年都卡在這里,直到又有一個門徒有了新想法。美索不達(dá)米亞人在做除法時,他知道自己會得到什么樣的結(jié)果,甚至事先預(yù)知這個除法要算多久。反過來,當(dāng)畢達(dá)哥拉斯學(xué)派的門徒面對算術(shù)問題時,他不可能知道要花多少時間才能找到一種能夠解決問題的推理,甚至不確信是不是有找到答案的那一天。
學(xué)生們有時會抱怨數(shù)學(xué)太難學(xué)——數(shù)學(xué)需要想象力,而且沒有系統(tǒng)化的方法來解決所有問題。這種說法確有其道理。數(shù)學(xué)對于專業(yè)數(shù)學(xué)家來說就更難,有些問題要花幾十年甚至幾百年才能解決。面對數(shù)學(xué)問題束手無策并不稀奇,數(shù)學(xué)家們也會在難題面前“卡殼”,有時甚至要到很久之后才能找到答案。但是,如果做個除法也要“卡殼”好幾個鐘頭,這就說不過去了——因?yàn)橹灰獞?yīng)用一個人所共知的算法就行了。
研究對象性質(zhì)的變化是如何引發(fā)解決問題的方法發(fā)生變化的呢?換句話說,古希臘數(shù)學(xué)是如何完成從計算到推理的標(biāo)志性轉(zhuǎn)變的呢?畢達(dá)哥拉斯學(xué)派的問題為什么就不能用計算解決呢?我們再來和美索不達(dá)米亞泥板上的問題比較一次吧。泥板上的問題針對的是一個特定的物品,即裝滿了糧食的谷倉,谷倉的體積是已知的。而在畢達(dá)哥拉斯學(xué)派的問題中,三角形是未知的——這正是我們需要去求解的對象。這個問題說的不是某個特定的三角形,而是會涉及所有可能的三角形。而且,由于三角形的尺寸沒有限制,問題會同時涉及無窮多個三角形。因此,在數(shù)學(xué)對象的性質(zhì)發(fā)生變化的同時,“無窮”闖入了數(shù)學(xué)——方法的改變勢在必行,要用推理來代替計算。我們在前面已經(jīng)提到,如果這個問題僅涉及有限個三角形,比如所有邊長小于10000米的三角形,那還是可以依靠計算來嘗試所有不超過10000的數(shù)對。當(dāng)然,手動計算起來無疑十分麻煩,但問題還是可以有條不紊地得到解決。
在公元前5世紀(jì)的希臘發(fā)生的這場從計算到推理的轉(zhuǎn)變,被視為數(shù)學(xué)的誕生。
最初的推理規(guī)則:哲學(xué)家與數(shù)學(xué)家
那么,到底什么是推理呢?如果我們知道所有的松鼠都屬于嚙齒目,所有的嚙齒目動物都是哺乳動物,所有的哺乳動物都是脊椎動物,所有的脊椎動物都是動物,我們就可以推導(dǎo)出一個結(jié)論:所有的松鼠都是動物。推理讓我們得到了這個結(jié)論,這背后是一套連續(xù)的推導(dǎo):所有的松鼠都是哺乳動物,因此所有松鼠都是脊椎動物,因此所有的松鼠都是動物。
這個推理簡單得不能再簡單了,但它的結(jié)構(gòu)和數(shù)學(xué)推理在本質(zhì)上并無二致。無論哪種推理,都是由一系列命題構(gòu)成的,每個命題都是用先前的命題通過邏輯得出的,也就是按照“演繹推理規(guī)則”構(gòu)造的。在此情況下,我們把同一個規(guī)則連用了三次:如果我們已經(jīng)知道所有的Y都是X,所有的Z都是Y,就可以推導(dǎo)出所有的Z都是X。
古希臘的哲學(xué)家為我們總結(jié)了最初的演繹規(guī)則,它可以讓推理進(jìn)行下去,也就是從已證的命題演繹出新的命題。例如,上述這條規(guī)則要?dú)w功于亞里士多德,他提出了一套叫作“三段論”的規(guī)則。三段論的另一種形式是“有些……是……”:如果知道所有的Y都是X,有些Z是Y,我們就可以演繹出有些Z是X。
亞里士多德并不是唯一一位對演繹規(guī)則感興趣的古代哲學(xué)家。公元前3世紀(jì)的斯多葛學(xué)派提出了另一套規(guī)則。例如,如果有命題“如果A,那么B”和命題A,則有一條規(guī)則可以演繹出命題B。
這兩派總結(jié)演繹規(guī)則的嘗試,正值從計算轉(zhuǎn)向推理的方法論革命之后,古希臘算術(shù)和幾何的蓬勃發(fā)展時期。因此我們可以想見,古希臘的數(shù)學(xué)家會使用亞里士多德或者斯多葛的邏輯來進(jìn)行推理。比如,在證明一個平方數(shù)不可能是另一個平方數(shù)的兩倍時,就可以用到三段論。奇怪的是,事實(shí)并非如此,盡管古希臘哲學(xué)家和數(shù)學(xué)家很顯然是志同道合的。比如,在公元前3世紀(jì),歐幾里得寫了一篇專著,綜合了他那個時代的幾何知識。他的專著結(jié)構(gòu)完全是演繹式的,其中提到的每一件事都給出了推理證明,但歐幾里得卻從來沒有用到過亞里士多德或斯多葛的邏輯。
有幾種假設(shè)可以來解釋這件事。最可能的一種假設(shè)是說,數(shù)學(xué)家沒有使用亞里士多德或斯多葛的邏輯,是因?yàn)樗鼈兲植诹恕T谒苟喔鸬倪壿嬛校梢杂脕硗评淼氖恰叭绻?span id="hf9qvus" class="italic">A,那么B”形式的命題,其中A和B是所謂的“原子命題”,表述了一個簡單事實(shí),比如“蘇格拉底必死”或者“天亮了”。于是,斯多葛邏輯的命題就是用“如果……那么……”“和”“或”等連詞聯(lián)系起來的一些原子命題。這是一種非常貧乏的語言設(shè)計,里面只有兩種語法類別——原子命題和連詞。它并沒有考慮到原子命題,比如“蘇格拉底必死”可以拆分成主詞“蘇格拉底”和謂詞(或?qū)傩裕氨厮馈薄?/p>
亞里士多德的邏輯和斯多葛不同,它承認(rèn)了“謂詞”的概念。推理中出現(xiàn)的X、Y、Z表達(dá)就恰恰是謂詞——松鼠、嚙齒目、哺乳動物……然而,亞里士多德的邏輯中并沒有“專有名詞”,即指代個人或物體的名詞,比如“蘇格拉底”。這是因?yàn)椋瑢τ趤喞锸慷嗟聛碚f,科學(xué)并不關(guān)心蘇格拉底這樣的特定個人,而是僅僅關(guān)心廣義的概念,比如“人”“必死”……所以,人們常常用來舉例的三段論——“所有人都是必死的,蘇格拉底是人,所以蘇格拉底是必死的”——并不會出現(xiàn)在亞里士多德的邏輯中。對他來說,三段論應(yīng)該是:“所有人都是必死的,所有哲學(xué)家都是人,所以所有哲學(xué)家都是必死的。”所以說,在亞里士多德的邏輯中,命題并不是由主詞和謂詞構(gòu)成的,而是由兩個謂詞和一個泛指代詞“所有”或“某些”構(gòu)成的。直到中世紀(jì)末,亞里士多德的邏輯才得到拓展,加入了專有名詞“蘇格拉底”等單稱項。然而,即使有了這樣的拓展,亞里士多德的邏輯對于表達(dá)某些數(shù)學(xué)表述來說還是太粗糙了。有了單稱項“4”和謂詞“偶數(shù)”,我們當(dāng)然可以構(gòu)造命題“4是偶數(shù)”,但它卻沒有辦法構(gòu)造命題“4比5小”,因?yàn)椤芭紨?shù)”只作用于單個對象,而謂詞“比……小”與之不同,它要作用于兩個對象,即“4”和“5”,并讓兩者形成一個關(guān)系。同理,它也沒有辦法構(gòu)造命題“直線?穿過了點(diǎn)A”。
我們現(xiàn)在明白了,為什么古希臘的數(shù)學(xué)家沒有使用同時代哲學(xué)家提出的邏輯來進(jìn)行新生的算術(shù)和幾何推理——因?yàn)檫@些邏輯不夠豐富,做不到。在非常長一段時期內(nèi),如何構(gòu)造一套豐富的、足以支撐數(shù)學(xué)推理的邏輯這一問題似乎并沒有引起多少人的興趣。除了個別人的幾次嘗試之外,比如17世紀(jì)萊布尼茨所做的研究,直到19世紀(jì)末的1879年,戈特洛布·弗雷格才重新拾起了這個問題,并提出了一套邏輯。但是,一直等到阿爾弗雷德·諾思·懷特海與伯特蘭·羅素在20世紀(jì)初提出類型論,并且大衛(wèi)·希爾伯特在20世紀(jì)20年代提出了謂詞邏輯之后,這些工作才取得了具體的成果。
不過,我們還是先繼續(xù)看看古希臘的數(shù)學(xué)吧。雖然沒有顯式的演繹規(guī)則來構(gòu)造數(shù)學(xué)推理,但這并沒有讓數(shù)學(xué)止步不前。直到19世紀(jì),數(shù)學(xué)命題的語法和演繹規(guī)則只不過不那么明確而已。這種情況在科學(xué)史上屢見不鮮——在缺乏工具的時候,人們就會想方設(shè)法對付一下,而這些變通又常常為工具的出現(xiàn)奠定了基礎(chǔ)。
不過對于幾何而言,歐幾里得明確提出了“公理”的概念:這是無需證明的事實(shí),也是構(gòu)造證明的基礎(chǔ)。特別是著名的平行公理,用現(xiàn)代的形式表述是這樣的:過給定直線外一點(diǎn),有且僅有一條直線與之平行。
長期以來,歐幾里得的專著《幾何原本》一直都被視為數(shù)學(xué)方法的原型:先提出公理,然后利用顯式或隱式的演繹規(guī)則,由公理證明定理。從這個角度來看,推理才是解決數(shù)學(xué)問題的唯一途徑,這也反映出古希臘數(shù)學(xué)家和哲學(xué)家對于推理的重視。
古希臘數(shù)學(xué)家利用公理化方法發(fā)現(xiàn)了一種新的數(shù)學(xué)。也許,他們還曾試圖理解這種新的數(shù)學(xué)是如何從美索不達(dá)米亞人和古埃及人更古老數(shù)學(xué)的發(fā)展而來的。如果古希臘人真的這樣做了,他們就應(yīng)該會去思考如何將計算和推理融合起來。然而這并不是他們的目的——相反,他們將過去一抹而凈,完全拋棄了計算,而代之以推理。
正因如此,在古希臘之后,計算在數(shù)學(xué)大廈之中就難有立錐之地了。