不同于希臘數(shù)學的公理化論證(以歐幾里得《幾何原本》為代表),中國古代數(shù)學是算法式的數(shù)學。它注重通用的方法,而不是特殊的技巧。 林開亮(首都師范大學數(shù)學博士,目前任教于西北農(nóng)林科技大學理學院) 最近讀到物理學家和科技史家程貞一教授的訪談錄(標題是“我的人生經(jīng)歷與學術(shù)生涯”,作者郭金海),他提到早年的一段感受:
另一件印象比較深刻的事,是上初中時,我對中國古代數(shù)學萌發(fā)了興趣。記得那時我們在念代數(shù),教科書是《范氏大代數(shù)》。那時一直困惑我的一個問題是:為什么我們的數(shù)學教科書上沒有一個來自中國文明的定理和成就?
正是這個疑問引導程貞一后來慢慢走向了科學史的研究,最終取得了杰出的成就。
與他相仿,我在年少時也渴望了解中國古代數(shù)學,然而教科書上很少提及這段歷史。即便到了大學、上了數(shù)學系、念了研究生、翻了好多書,我對中國古代數(shù)學的認識還是很模糊。直到工作之后,我偶然讀到吳文俊先生的幾篇分析中國古代數(shù)學的文章,才豁然開朗。
照我的解讀,吳文俊先生的意思是,中國古代數(shù)學其實只有一個關(guān)鍵字:術(shù)。吳先生在《對中國傳統(tǒng)數(shù)學的再認識》中的原話如下:
大體說來,中國數(shù)學的古典著作大都以依據(jù)不同方法或不同類型分成章節(jié)的問題集的形式出現(xiàn)。每一個別問題又都分成若干個條目。條目一是“問”,提出有具體數(shù)值的問題。條目二是“答”,給出這一問題的具體數(shù)值解答。條目三稱為“術(shù)”,一般來說乃是解答與條目一同一類型問題的普遍方法,實際上就相當于現(xiàn)代計算機科學中的“算法”,但有時也相當于一個公式或一個定理。條目四是“注”,說明“術(shù)”的依據(jù)或理由,實質(zhì)上相當于一種證明。宋元以來,可能是由于印刷術(shù)的發(fā)達,往往加上條目五“草”,記述依據(jù)“術(shù)”得出答案的詳細計算過程。
這里應特別提出條目三“術(shù)”的作用。雖然條目一、二中的問與答都以具體數(shù)值表達,有時甚至術(shù)文本身也是如此,但不難看出所有術(shù)文都具有普遍意義。術(shù)文中即使帶有具體數(shù)值,這些數(shù)值并不起重要作用。如果以其他同類型的數(shù)值來代替,術(shù)文也依然行之有效。條目四的“注”或即證明也是如此。論證的正確性完全不依賴于原設數(shù)值的特殊性。例如,《九章算術(shù)》第九章勾股的第一、二、三的三個問題,都是以勾三、股四、弦五為例,知其二求其第三者。求法名為勾股術(shù),術(shù)文曰:“勾、股各自乘,并而開方除之,即弦。”顯然,這是從勾股求弦的一般方法,與具體數(shù)值三、四、五無關(guān)。勾股術(shù)的注或即證明也是如此。因此,問、答或術(shù)文中的具體數(shù)值,只起著一種舉例說明的作用,同時也指出了術(shù)即一般方法的來歷或動機。
在最近出版的《走自己的路——吳文俊口述自傳》(湖南教育出版社,2015年)中,吳文俊先生著重指出:
機械化,貫穿中國古代數(shù)學的思想是機械化,中國古代數(shù)學的特點就是構(gòu)造性和機械化。中國古代數(shù)學是著重解決實際問題,它的方法是“機械”的,跟西方數(shù)學的證明不一樣,靈機一動什么的。中國古代數(shù)學不講這個,沒有什么靈機一動,都是死板的。這是我的發(fā)現(xiàn),這是我真正讀懂了中國古代數(shù)學。
吳先生這里所謂的機械化,就體現(xiàn)在“術(shù)”的作用,相當于現(xiàn)代計算機科學中的“算法”。讀到這里,就容易明白,為什么一直以來我們稱數(shù)學為“算術(shù)”了:因為“術(shù)”正是中國古代數(shù)學的精髓。改稱“算學”為“數(shù)學”,還是近代的事情。民國時期,北大有“數(shù)學系”,而清華的則叫作“算學系”。他們認為是一樣的,但不想用同樣的名字,因為互相不服氣。
吳文俊先生一直強調(diào),不同于希臘數(shù)學的公理化論證(以歐幾里得《幾何原本》為代表),中國古代數(shù)學是算法式的數(shù)學。這不難理解,只要看看我們的前輩創(chuàng)造了多少“術(shù)”:
正如吳文俊先生所總結(jié)的:“中國古代數(shù)學,就是一部算法大全?!彼砸私庵袊糯鷶?shù)學,就要了解一些代表性的算法。以下我們選取其中幾項,略為介紹。 1 更相減損術(shù) 第一個例子是吳文俊先生本人舉的,即求兩個正整數(shù)的最大公因子的“更相減損術(shù)”。 一個典型的例子是求最大公約數(shù),中國古代叫“更相減損術(shù)”。中國古代數(shù)學中,把最大公約數(shù)叫做“等數(shù)”,術(shù)曰:以少減多,更相減損,求其等也。 就這么幾句話!比如說,要求24和15的最大公約數(shù),也就是 “等數(shù)”,“更相減損術(shù)”的步驟如下: (24,15) → (9,15) → (9,6) → (3,6) → (3,3) 因此“等數(shù)”為 3。真漂亮!
“更相減損術(shù)”來自《九章算術(shù)》,一般簡稱《九章》,它是中國第一部數(shù)學專著,一共有九章內(nèi)容?!毒耪隆范ㄐ筒煌碛诠?00年,但其作者不可考,后世流行的版本是經(jīng)三國時期數(shù)學家劉徽加工之后的《九章算術(shù)注》(公元263年出版)。劉徽在《九章算術(shù)注》中曾明確指出,“更相減損術(shù)”的原理在于:在運算過程中,整數(shù)逐步減小,但其等數(shù)卻始終保持不變。順便提一句,《九章》中主要是利用“更相減損術(shù)”來約分,所以它完全包含在“約分術(shù)”中:“副置分母、子之數(shù),以少減多,更相減損,求其等也。以等數(shù)約之?!?/span>就是求出分子、分母的最大公因子(等數(shù)),然后分子分母同除以最大公因子。 劉徽 《九章算術(shù)注》 在現(xiàn)代教科書中,通常用“輾轉(zhuǎn)相除法”(也稱為歐幾里得算法)來求兩個正整數(shù)的最大公因子。它是“更相減損術(shù)”的一個變體,其基礎是所謂的帶余除法。 帶余除法定理:設a和b是兩個整數(shù),其中b>0 ,則存在唯一的整數(shù)q和r使得 a=qb+r,(其中r滿足0≤r<> 定理中的q稱為a除以b的商,可以用下述性質(zhì)刻畫:qb是b的所有的倍數(shù)中不超過a最大的一個;r稱為a除以b的余數(shù),由r=a-qb確定。帶余除法名稱的由來,在于等式右邊有余數(shù)r。當余數(shù)r=0時,稱b整除a,而且b就是a,b的最大公因子。
我們不擬介紹歐幾里得算法,是因為在解決另一個與求最大公因子問題關(guān)系非常密切的問題時,中國古代的數(shù)學家本質(zhì)上也創(chuàng)造了同樣的算法,只不過它換了一個名字,叫“求一術(shù)”。 2 大衍求一術(shù) 簡單地說,求一術(shù),就是求解下述方程 ax≡1(mod b) (1) 的算法。這里a,b是給定的非零整數(shù),x是要求的整數(shù),它滿足方程ax≡1(mod b)是指,ax除以b的余數(shù)為1。
北宋數(shù)學家秦九韶發(fā)明了一種求一術(shù),他在1247年出版的《數(shù)書九章》中命名為“大衍求一術(shù)”(“大衍”的來由:在序言中,秦九韶把這一方法與《周易》“大衍之數(shù)”附會)。后來,清代數(shù)學家黃宗憲進一步簡化了秦九韶的方法。我們現(xiàn)在介紹的,是這個簡化的版本。
不同于歐幾里得的輾轉(zhuǎn)相除,秦九韶‐黃宗憲的方法是用矩陣。首先寫出一個 2 行 2 列的陣 其中a,b,1都是源自方程(1),只有0是補充進來的。 秦九韶‐黃宗憲的方法(求一術(shù))如下:對第一列的數(shù)a,b使用帶余除法(較大的數(shù)除以較小的數(shù))。設得到的商為q,則較大的數(shù)那一行減去較小數(shù)的那一行對應元素的q倍。于是新得到的矩陣的第一列兩個元素替換為第一次帶余除法的除數(shù)與余數(shù)。重復之前的操作,直到某一步帶余除法得到的余數(shù)為 1(算法結(jié)束)。此時1正右方的數(shù),即為所求的x。求一術(shù),實際上就是“得1”的方法,因此又名“得一術(shù)”。
作為例子,我們用秦九韶‐黃宗憲的方法來求 5x≡1(mod 7) (2) 的一個解。
解:求一術(shù)步驟如下: 根據(jù)求一術(shù),1的右邊的數(shù),就是x的一個解,即x=3。這是很容易驗證的: 5·3=15≡1(mod 7)
當然,你或許以為我是把問題搞復雜了,你甚至在一開始就試出來x=3是一個解。然而,正如吳文俊先生多次強調(diào)的,中國古代數(shù)學講究的是一種算法,是一種威力極強的基本功夫。毫不夸張地說,簡直可以遇妖除妖遇魔降魔。簡單的例子你用技巧可以解決,但如果我換成一個稍微復雜一點的例子,如解方程 250x≡1(mod 2017) 你若是還想故技重施,就沒那么幸運了!
說到這里,我想起著名數(shù)學家、數(shù)學教育家波利亞(George Pólya)的一句名言:“使用過一次的是技巧,使用過兩次以上的技巧就有可能發(fā)展為一種方法?!闭^“大智若愚,大巧若拙”,中國古代數(shù)學,注重的是通用的方法(“法”“術(shù)”同義),而不是特殊的技巧。讀者若想領教秦九韶‐黃宗憲的求一術(shù)的威力,不妨用上面的方程250x≡1(mod 2017)一試!
不難發(fā)現(xiàn),秦九韶‐黃宗憲的求一術(shù)與求最大公因子的歐幾里得算法是相通的。作為例子,我們用矩陣格式寫出求250與2017的最大公因子的過程如下: 在上述歐幾里得算法中,直到某一步帶余除法得到的余數(shù)為 0(算法結(jié)束),此時另一個數(shù)(這里就是1)即為最大公因子。當然,在我們的例子中驗證十分容易,通過分解因子250=2×5×5×5 ,不難發(fā)現(xiàn)2017和250的公因子只有1。(事實上,2017是素數(shù),但要徒手確認這一點,比上述求公因子的問題困難多了?。?/span> 3 方程術(shù) 學過線性代數(shù)的讀者應該會想起來,求一術(shù)本質(zhì)上就是解線性方程組的初等行變換法,也稱高斯消去法。因此,可以想見,秦九韶的求一術(shù)可能脫胎于“方程術(shù)”?!胺匠绦g(shù)”出自《九章算術(shù)》第八章,這一章詳述了線性聯(lián)立方程組的解法并引進了負數(shù)。按現(xiàn)代語言,“方程”這一術(shù)語的最好解釋就是“方陣”。實際上,“方”的字面意義為正方形或矩形。“程”,按劉徽在《九章算術(shù)注》里的解釋, 就是把數(shù)據(jù)在盤上擺成矩陣:“并列為行, 故謂之方程”。 因此,解法便是縱橫移動算籌,如我們上面所展示的那樣。 4 天元術(shù)與四元術(shù) 中國古代數(shù)學的高峰是在宋元時代,其代表人物是秦九韶、李冶和朱世杰。前面我們介紹了秦九韶和黃宗憲的大衍求一術(shù),接下來我們介紹一下李冶的天元術(shù)和朱世杰的四元術(shù)。
秦九韶的《數(shù)書九章》 天元術(shù)其實就是設未知數(shù)解方程的方法。元就是未知數(shù),“天元”就是未知數(shù)的名稱。打個比方,“天元”相當于“嫌疑人X”,其中“元”相當于“嫌疑人”,“天”相當于“X”。
我相信每個人都對這種方法的威力深有體會,尤其是剛接觸這個方法的小學生。其實, 我們每個人在小學就已經(jīng)接觸到中國古代數(shù)學的杰出成就了,只是我們沒有被告知而已!
國家自然科學基金中有個數(shù)學專項基金名叫“數(shù)學天元基金”,命名就來自“天元術(shù)”。
四元術(shù),是天元術(shù)的推廣。四元是指“天、地、人、物”四元,相當于說四個未知數(shù)x,y,z,w。天元術(shù)是求解帶有一個未知數(shù)的方程的方法;而四元術(shù)則是求解帶有四個未知數(shù)的方程組的方法。
“四”在此并無特殊含義,只是多項式中各項系數(shù)要擺在盤上的固定位置,這就限定了未知數(shù)的個數(shù)不超過四。因而對于懂“四元術(shù)”的人來說,這個方法不難推廣到任意多個未知數(shù)。然而,宋元之后,中國古代數(shù)學就盛極而衰了,以至朱世杰的“四元術(shù)”沒有被后人繼承發(fā)展(甚至當利瑪竇在明代來到中國時,中國已經(jīng)無人懂《九章》了?。V钡?20 世紀,在計算機興起和數(shù)學機械化思想復蘇的背景下,朱世杰的這一工作最終啟發(fā)吳文俊開創(chuàng)了幾何定理機器證明的“吳方法”。吳文俊甚至這樣說:“這里所謂本人所創(chuàng)立的方法,事實上無非是朱世杰四元術(shù)的現(xiàn)代化推廣形式?!?/span> 《吳文俊論數(shù)學機械化》其中收入了吳文俊先生部分數(shù)學史文章 結(jié)語 在一次訪談(標題是“走進吳文俊院士”,作者黃祖賓)中,吳文俊先生說到:
最早的幾何學、最早的方程組、最古老的矩陣等等,翻開歷史,中國曾經(jīng)是一個數(shù)學的國度,中國數(shù)學在世界上的位置遠比今天靠前。祖沖之、劉徽、《九章算術(shù)》、《周髀算經(jīng)》、《四元玉鑒》等一批大家和著作,使中國數(shù)學曾經(jīng)處于世界巔峰。正是由于這些輝煌,中國數(shù)學,不僅要振興,更要復興!
就我個人的感覺,從前學數(shù)學,在課本上讀不到中國古代數(shù)學的成就, 確實有些打擊士氣,下意識里就覺得我們中國人,是不是不適合學數(shù)學?如果當初有幸從吳文俊先生的文章中 了解到一些中國古代數(shù)學思想,我想我可能會學得更好些,甚至有可能專門研究中國古代數(shù)學。筆者這里并沒有要揚中國古代數(shù)學而抑希臘古代數(shù)學的意思,只是想告訴讀者,從風格上講,中國古代數(shù)學具有鮮明的算法特色,這是中國古代數(shù)學的精髓所在。
無論如何,我要向所有對中國古代數(shù)學感興趣的讀者,推薦吳文俊先生的文章。要知道,這位榮獲2000年首屆國家最高科技獎的大數(shù)學家曾經(jīng)說:“對中國古代數(shù)學的研究,是我最得意的,拓撲的那些工作不算什么。我感到最得意最自豪的是:真正懂了中國古代數(shù)學是怎么回事。”
如果我拋此磚能引出美玉,這篇小文的目標就達到了。 致謝:感謝陳關(guān)榮、李良攀、劉云朋諸位教授和潘穎女士對初稿提出的寶貴意見! |
|