導(dǎo)言:本文將介紹中國(guó)古代最完美和最值得驕傲的數(shù)學(xué)成果“中國(guó)剩余定理”,希望能有更多的讀者和學(xué)生能重視我們國(guó)家的傳統(tǒng)文化,并通過對(duì)中國(guó)剩余定理的了解和學(xué)習(xí)喜歡上數(shù)論。
在中外幾乎每一本基礎(chǔ)數(shù)論的教課書中,都會(huì)介紹一個(gè)被稱之為“中國(guó)剩余定理”(Chinese Remainder Theorem)的知識(shí)。在我的印象里,自己是在小學(xué)四五年級(jí)的時(shí)候接觸到這個(gè)知識(shí)的,并知道如何去應(yīng)用它,但要等到初中后才真正明白其原理。中國(guó)剩余定理是中國(guó)古代史上最完美和最值得驕傲的數(shù)學(xué)成果,它是中國(guó)對(duì)世界數(shù)學(xué)思想史的重要貢獻(xiàn)。但很遺憾,現(xiàn)在的孩子大部分都已經(jīng)不學(xué)這部分知識(shí)。距我當(dāng)年學(xué)習(xí)這部分內(nèi)容已經(jīng)近三十年了,我不知道我們的數(shù)學(xué)教育到底出了什么問題。
那么,今天我們就來了解和學(xué)習(xí)一下這個(gè)數(shù)論中的著名定理“中國(guó)剩余定理”。
第一部分:?jiǎn)栴}的起源
中國(guó)剩余定理起源于我國(guó)南北朝時(shí)期的數(shù)學(xué)著作《孫子算經(jīng)》,因此又名“孫子剩余定理”。
《孫子算經(jīng)》,中國(guó)南北朝數(shù)學(xué)著作,《算經(jīng)十書》之一。全書共分三卷:上卷詳細(xì)的討論了度量衡的單位和籌算的制度和方法;中卷主要是關(guān)于分?jǐn)?shù)的應(yīng)用題,包括面積、體積、等比數(shù)列等計(jì)算題,大致都在《九章》中論述的范圍之內(nèi);下卷對(duì)后世的影響最為深遠(yuǎn),如下卷第31題即著名的“雞兔同籠”問題,后傳至日本,被改為“鶴龜算”。下卷第26題“物不知數(shù)”為后來的“大衍求一術(shù)”的起源,被看作是中國(guó)數(shù)學(xué)史上最有創(chuàng)造性的成就之一,稱為“中國(guó)剩余定理”。經(jīng)考證,《孫子算經(jīng)》的作者與《孫子兵法》的孫武并非同一人。
“中國(guó)剩余定理”在古代有“韓信點(diǎn)兵”、“鬼谷算”、“求一術(shù)”、“隔墻算”、“剪管術(shù)”、“秦王暗點(diǎn)兵”、“物不知數(shù)”、“孫子定理”之名,是數(shù)論中主要命題,它不僅在抽象代數(shù)理論中有相應(yīng)的推廣,也被應(yīng)用到密碼學(xué)、哥德爾不完全性定理的證明、快速傅里葉變換理論等。
首先,引述《孫子算經(jīng)》中“物不知數(shù)”的原文:
今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?
答曰:二十三。
術(shù)曰:三三數(shù)之剩二,置一百四十;五五數(shù)之剩三,置六十三;數(shù)之剩三,置三十。并之得二百三十三。以二百一十減之,即得。凡三三數(shù)之剩一,則置十,五五數(shù)之剩一,則置二十一,數(shù)之剩一,則置十五。一百六以上,以一百五減之,即得。
用數(shù)論中的同余式表達(dá)就是:
在這里,a≡b(mod n)的形式表示a和b除以n的余數(shù)相同,或者說a-b可被n整除,我們稱之為“a、b關(guān)于模n同余”。同余符號(hào)“≡”為德國(guó)數(shù)學(xué)家高斯所發(fā)明并首先使用。
《孫子算經(jīng)》簡(jiǎn)要給出了該問題的解法和答案,首先將該問題用算式求解即可表示為:
70×2+21×3+15×2-105×2=23。
鑒于《孫子算經(jīng)》對(duì)于這類問題的討論存在沒有總結(jié)成文以及未推及到一般情況的缺陷,因此也并沒有達(dá)到理論的高度。南宋數(shù)學(xué)家秦九韶在1247年完成的《數(shù)書九章》中推廣了“孫子定理”形成“中國(guó)剩余定理”。在《數(shù)書九章》中,秦九韶系統(tǒng)敘述了“大衍求一術(shù)”來歸納求解一次同余組的計(jì)算步驟,并提出了乘率、定數(shù)、衍母和衍數(shù)等一系列數(shù)學(xué)概念。至此,“物不知數(shù)”所引出的一次同余式組問題才真正得到了一般的解法,上升到中國(guó)剩余定理的高度。
《數(shù)書九章》又名《數(shù)學(xué)九章》,全書共十八卷,分為九類,每類九問,共九九八十一問,由南宋數(shù)學(xué)家秦九韶著于淳祐七年(1247年)?!稊?shù)書九章》題材廣泛,取自宋代社會(huì)各方面,包括農(nóng)業(yè)、天文、水利、城市布局、建筑工程、測(cè)量、賦稅、兵器、軍旅等方面,是一部實(shí)用數(shù)學(xué)大全。
1275年,楊輝的《續(xù)古摘奇算法》包了五個(gè)不同的同余問題,在此例子之后又附四例。同時(shí),剩余問題也出現(xiàn)在阿拉伯?dāng)?shù)學(xué)家伊本·塔希爾(Ibn Tahir)和伊本·海什木(lbn al-Haytham)的著作中。意大利數(shù)學(xué)家斐波那契寫于1202年的《計(jì)算之書》(Liber Abaci)中的剩余問題,使用了跟《孫子算經(jīng)》中一樣的模和法則。從此,剩余問題成為歐洲數(shù)學(xué)家論著中常見的主題。
明代程大位編撰的《算法統(tǒng)宗》用歌謠的形式給出了物不知數(shù)問題的解:
三人同行七十稀,
五樹梅花廿一枝。
七子團(tuán)圓正半月,
除百零五便得知。
該歌謠中的“七十稀”、“廿一枝”和“正半月”,就暗指70、21和15這三個(gè)重要的數(shù)字。
到了宋代,有人把這個(gè)口訣編為四句詩(周密《志雅堂雜鈔》):
三歲孩兒七十稀,
五留廿一事尤奇,
七度上元重相會(huì),
寒食清明便可知。
在這首詩里,“上元”是指正月十五日,即元宵節(jié),暗指15;而“寒食”是節(jié)氣時(shí)令名,從冬至到清明,間隔105日,這段期間叫做“寒食”,故“寒食”暗指105。
這里我們也可以看到,古人在數(shù)學(xué)教育中寓教于文,將中國(guó)剩余定理的解法以歌謠的形式更加便于記誦,使得該解法更為普及,以致遠(yuǎn)渡重洋,流傳到日本。但是以上解法都沒有說明這三個(gè)數(shù)的緣由。
第二部分:嘗試與探索
在正式介紹同余解法之前,我們先來觀察和嘗試一下可能的答案。
當(dāng)我們面對(duì)一個(gè)不熟悉的問題時(shí),最先想到的辦法就是先觀察并進(jìn)行試錯(cuò)(trial and error),通過投石問路的方式收集信息,再經(jīng)系統(tǒng)化處理,這往往就能夠解決一個(gè)問題。即使不能立馬解決,對(duì)該問題也有了相當(dāng)?shù)睦斫猓让つ康亟忸}更加有效。這就是我們經(jīng)常說的“摸著石頭過河”。
首先,我們考慮被3除余2的問題。正整數(shù)可被3整除的有 3、6、9、12、……,所以被3除余2的正整數(shù)有2、5、8、11、14、……;其次,被5除余3的正整數(shù)有3、8、13、18、……;最后,被7除余2的正整數(shù)有2、9、16、23、……。通過列表對(duì)其觀察與比較:
我們可以發(fā)現(xiàn),第一個(gè)符合題目要求的答案是23。如果你有足夠的耐心羅列下去,第二個(gè)答案就是128,第三個(gè)答案是233,……。于是我們可以歸納得到,從第一個(gè)答案23開始,逐個(gè)加上105都是符合題目要求的答案。如果寫成表達(dá)式就是:
從概率上來說,一只猴子用打字機(jī)隨機(jī)地打字,最終會(huì)打出一部《莎士比亞全集》,其概率為1。這可能是試錯(cuò)法中最為令人驚嘆的一個(gè)例子了。人為萬物之靈,使用試錯(cuò)法當(dāng)然會(huì)更加高明和有效。這也是我經(jīng)常提醒孩子們的地方:我允許你們最后失敗,但不能原諒你們不去嘗試!
根據(jù)笛卡兒(Descartes,1596~1650)的解題方法論:面對(duì)一個(gè)難題,盡可能把它分解成許多部分,然后由最簡(jiǎn)單、最容易下手的地方開始,一步一步地拾級(jí)而上,直到原來的難題解決。換言之,你問我一個(gè)問題,我就自問更多相關(guān)的問題,由簡(jiǎn)易至復(fù)雜,鋪成一條探索之路。
第三部分:從不定方程說起
讓我先從不定方程組開始說起。
前文“物不知數(shù)”的問題可以用不定方程組表達(dá):
要求這個(gè)聯(lián)立方程組,先從單個(gè)的方程開始入手。
要求這個(gè)方程的解,可以通過先求解m=3x而得到,然后加上2或5或-4等等即可。
接著考慮兩個(gè)方程的情況,即:
先考慮特殊情況,即余數(shù)為0的情況:
顯然,解m就是3和5的公倍數(shù)。因?yàn)?/span>3和5互質(zhì),所以3×5=15就是它們的最小公倍數(shù)。因此m=15·n(n∈Z),這就是上面聯(lián)立方程組的通解。
進(jìn)一步探索,嘗試求特解:
這個(gè)方程組的解其實(shí)就是要在5的倍數(shù)中找到除3余1的數(shù)字。
由于是特解,我們不妨設(shè)m=10。從而我們可以得到下面這個(gè)方程組的特解為m=2×10=20。
同理,我們可以得到下面方程組的特解為m=6。
從而得到下面方程組的特解為m=3×6=18。
根據(jù)上面的嘗試,我們可以得到:
這就是不定方程組
的通解公式。
再進(jìn)一步,我們求解原題的不定方程組:
我們知道,因?yàn)?/span>3、5、7三個(gè)數(shù)互質(zhì),所以它們的最小公倍數(shù)為105。然后,我們分別找下面三個(gè)方程組的特解:
分別得到m=70、m=21、m=15,從而得到:
當(dāng)n=-2時(shí),m=23,即為“物不知數(shù)”問題的最小正整數(shù)解了。
小結(jié):在這個(gè)問題上,我們通過分析與綜合,將原問題分解成幾個(gè)相關(guān)的簡(jiǎn)易問題(相當(dāng)于物質(zhì)之分解成原子),分別求得解答后,再將它們綜合起來(相當(dāng)于原子之組合成物質(zhì))。這里的綜合包括特解的放大某個(gè)倍數(shù)和相加,然后再加上齊次線性方程組的通解。這非常相像于原子論的研究物質(zhì)的組成要素、結(jié)構(gòu)、變化和分合之道。
第四部分:從同余解法說起
數(shù)論中很重要的一部分內(nèi)容就是同余式,理解了同余也就數(shù)論入門了。下面我們通過同余的解法來解釋中國(guó)剩余定理,這部分內(nèi)容本質(zhì)上沒有什么創(chuàng)新,其實(shí)就是對(duì)第三部分不定方程解法的進(jìn)一步闡釋。
首先,可以將孫子問題的解法分為三步。
第一步,找出這樣三個(gè)數(shù),從3和5的公倍數(shù)中找出被7除余1的最小數(shù)15,從3和7的公倍數(shù)中找出被5除余1的最小數(shù)21,從5和7的公倍數(shù)中找出被3除余1的最小數(shù)70;
第二步,用15乘以所求數(shù)除以7的余數(shù)2,用21乘以所求數(shù)除以5的余數(shù)3,用70乘以所求數(shù)除以3的余數(shù)2,然后把三個(gè)乘積相加,就可以得到15×2+21×3+70×2=233。
第三步,再用233除以3、5、7這三個(gè)數(shù)的最小公倍數(shù)105,得到余數(shù)23,這個(gè)余數(shù)就是符合條件的最小數(shù)。
我們將這種求解的方法稱為“同余(congruence)算法”,這種算法的依據(jù)如下:
首先,假設(shè)a滿足除以3余2,b滿足除以5余3,c滿足除以7余2。從a出發(fā),由于a滿足除以3余2,依據(jù)定理“如果一個(gè)除法運(yùn)算的余數(shù)為r,那么被除數(shù)與k倍的除數(shù)相加(減)的和(差)再與除數(shù)相除,余數(shù)不改變”,可以使得a+b的和仍然滿足除3余2;同理,可以使得a+b+c的和仍然滿足除3余2,對(duì)于b、c有類似推導(dǎo)。
綜上可以得出:
b和c是3的倍數(shù),則a+b+c的和滿足除3余2;
a和c是5的倍數(shù),則a+b+c的和滿足除5余3;
a和b是7的倍數(shù),則a+b+c的和滿足除7余2。
所以為了使得a+b+c的和為所求解,只要滿足:
a除3余2,且是5和7的公倍數(shù);
b除5余3,且是3和7的公倍數(shù);
c除7余2,且是3和5的倍數(shù)。
因此,問題可以歸結(jié)為從5和7的公倍數(shù)中找出一個(gè)數(shù),使得其除3余2,記為a;從3和7的公倍數(shù)中再找出一個(gè)數(shù),使得其除以 5余3,記為b;最后從3和5的公倍數(shù)中找出一個(gè)數(shù),使得其除7余2,記為c。最后再把三個(gè)數(shù)相加就是所求數(shù),盡管這時(shí)還不是最小解。在求解a、b、c時(shí),以求解a為例,并不是直接從5和7的公倍數(shù)中找到除3余2的數(shù),而是先找到除3余1的數(shù),再乘2。
用同余式表達(dá)就是:
中國(guó)剩余定理還可以通過線性代數(shù)求解,并一般化到n個(gè)兩兩互質(zhì)的正整數(shù)情況,有興趣的朋友可以去尋找相關(guān)的資料進(jìn)行學(xué)習(xí),并進(jìn)一步理解和體會(huì)到中國(guó)剩余定理的重要性和影響力。
第五部分:秦九韶與《數(shù)書九章》
最后,我有必要向讀者朋友們?cè)俳榻B一位被嚴(yán)重忽視的南宋數(shù)學(xué)家秦九韶。
秦九韶祖籍河南范縣,出因地理位置處于魯豫交界處,有數(shù)百年設(shè)在山東莘縣境內(nèi),故自稱山東魯郡人。他生于四川普州安岳,曾擔(dān)任過四川巴州的地方官,后因巴州兵變調(diào)任臨安(杭州)。在蒙古大軍兵臨潼川城下的艱難環(huán)境里,秦九韶卻有了撰寫《數(shù)書九章》的時(shí)間和靈感,也許恰是數(shù)學(xué)才使他撫平了戰(zhàn)亂的擔(dān)憂,緩解了國(guó)事飄零的悲痛。
鑒于他對(duì)數(shù)字的尊崇和對(duì)《周易》命理學(xué)的信服,秦九韶將《數(shù)書九章》分成九部分,每一部分又包含九道題,也許這不是一個(gè)單純的巧合。除了天文、歷法、氣象、軍旅(營(yíng)盤布置)以及市物(利息的計(jì)算)相關(guān)的數(shù)學(xué)問題,書中還包括了不定分析、田域測(cè)量、測(cè)望法(勾股、重差)、求“均稅”(均輸、稅收)、農(nóng)業(yè)營(yíng)建以及倉窖容積和各種商品轉(zhuǎn)運(yùn)方面的題目。
在序言中,從占卜和《周易》中數(shù)學(xué)的地位,到“土圭度晷”在量天測(cè)地中所起到的作用,秦九韶強(qiáng)調(diào)了數(shù)學(xué)在社會(huì)生活各方面扮演的角色。他所引用的河圖洛書充滿了神秘的數(shù)學(xué)意義,因?yàn)樗鼈兊膱D形與幻方有密切關(guān)聯(lián)。河圖出自黃河,據(jù)說它的靈感來自一匹龍馬身上的斑點(diǎn);洛書則來源于洛水,傳說有神龜出于洛水,其甲殼上有此圖像,前九個(gè)數(shù)字列成了一個(gè)幻方。
除了僅將數(shù)學(xué)應(yīng)用于歷法推算、官員們的日常管理以及搖役攤派的計(jì)算上,秦九韶對(duì)數(shù)學(xué)家們故步自封導(dǎo)致數(shù)學(xué)被“漠然置之”而耿耿于懷。結(jié)果,甚至掌握了基本算法的數(shù)學(xué)家都不能處理高次開方或不定分析問題。
《數(shù)書九章》的偉大創(chuàng)新之處在于該書的第一部分就對(duì)不定分析問題做了詳細(xì)的闡釋,書中所展示的計(jì)算方法被稱作“大衍求一術(shù)”。此名就帶有神秘主義的色彩,秦九韶把命理學(xué)與解一次同余式的方法聯(lián)系在一起?!稊?shù)書九章》的前言提及“道數(shù)合一”,并把數(shù)學(xué)運(yùn)算過程解釋為“通神明”?!按笱苄g(shù)”的獨(dú)特之處在于強(qiáng)調(diào)了一條《九章》里沒有的數(shù)學(xué)規(guī)律,盡管造歷者早巳對(duì)其熟練利用,數(shù)學(xué)家的工作顯然尚未開始?!按笱芮笠恍g(shù)”中求解方程ax≡1(mod m)中的步驟,是解決中國(guó)剩余問題的關(guān)鍵一步,即n個(gè)同余式N≡ri(mod mi)的解,其中mi兩兩互質(zhì)。
用現(xiàn)代數(shù)學(xué)語言來描述“大衍求一術(shù)”就是:設(shè)有k個(gè)兩兩互質(zhì)的大于1的正整數(shù)mi,其乘積為M,則對(duì)任意k個(gè)整數(shù)ai,存在唯一不超過M的正整數(shù)x,x被各個(gè)mi相除所得余數(shù)依次為ai。秦九韶給出了求解的過程,為此他發(fā)明了“輾轉(zhuǎn)相除法”(歐幾里得算法)和 “求一術(shù)”。后者是指,設(shè)a和m是互質(zhì)的正整數(shù),m大于1,可以求得唯一不超過m的正整數(shù)x,使得a和x的乘積被m除后余數(shù)為1。
《孫子算經(jīng)》中所給出的“中國(guó)剩余問題”(Chinese Remainder Problem)的解決方法表明作者似乎懂得這個(gè)問題的一般規(guī)律,只是沒有明白地表示出來,并且孫子的解決方案僅針對(duì)“孫子問題”中的數(shù)據(jù)而言,這顯然不足以滿足秦九韶對(duì)更普遍規(guī)律的渴求。由此,他構(gòu)思出了一個(gè)更加詳細(xì)的步驟,將算板上數(shù)字的每一步都加以說明。
求滿足xiPi≡1(mod m)的xi的步驟也解釋了秦九韶為什么把中國(guó)剩余定理命名為“大衍求一術(shù)”,這可以追溯到《易經(jīng)》。在那里占卜的方法開始于50只計(jì)數(shù)用的小棍,其中在把剩余的分成陰陽兩組之前,有一只是被放到一邊的。
秦九韶設(shè)計(jì)了9道復(fù)雜的同余問題。例如,第3題涉及四個(gè)模:54、57、72和75。而且,當(dāng)同余問題與天文應(yīng)用結(jié)合時(shí),數(shù)學(xué)的復(fù)雜性陡然上升。例如,因?yàn)?/span>mi代表了行星或者月亮相位的運(yùn)動(dòng)周期,其中的同余式并非都是整數(shù)。他還進(jìn)一步考慮了更加復(fù)雜的情形,比如m是分?jǐn)?shù)的情況。他解釋了如果mi不互質(zhì)該怎么做。盡管中國(guó)數(shù)學(xué)家沒有明確地使用質(zhì)數(shù)概念,在同余式中mi不包含公因子的必要性對(duì)秦九韶這樣的數(shù)學(xué)家也是顯而易見的。
《數(shù)書九章》對(duì)同余問題的系統(tǒng)性解決方法與歷法應(yīng)用緊密相連,秦九韶也恰好對(duì)后者非常感興趣,并在這里使用了追及問題的形式以求得從一個(gè)給定的初始位置到(行星)第二次排列出現(xiàn)時(shí)所需要的時(shí)間。這樣的追及問題出現(xiàn)在《數(shù)書九章》的第一章和第二章,且雖然求“上元積年”的方法主要應(yīng)用于天文歷法,秦九韶也用這個(gè)方法來解決各種數(shù)學(xué)中的同余問題。李儼、杜石然指出,直到歐拉(Euler)和高斯(Gauss)系統(tǒng)地研究了同余問題,才可與秦氏的結(jié)果相比肩,他們據(jù)此認(rèn)為“秦九韶的研究比歐洲此方面的研究早了500年”。
《數(shù)書九章》包含了許多問題,其中涉及二次方程、三次方程、四次方程,甚至有一道十次方程的題。這些方程的系數(shù)可正可負(fù),或是整數(shù)或是分?jǐn)?shù)——開方根的方法是普遍適用的。在他的解法闡釋中,秦九韶經(jīng)常清晰地給出表示算籌擺布形狀的圖,用以說明用迭代乘法進(jìn)行開方根算法的每一步過程。
1852年,英國(guó)傳教士和漢學(xué)家偉烈亞力(Wylie,1815~1881)將“大衍求一術(shù)”和同余方程組的解法翻譯介紹到西方,德國(guó)數(shù)學(xué)史家康托爾 (1829~1920) 贊揚(yáng)秦九韶是“最幸運(yùn)的天才”。因?yàn)榇饲皻W拉和高斯都對(duì)這個(gè)問題做了深入研究,并給以理論證明,但尚未命名。當(dāng)年法國(guó)數(shù)學(xué)家拉格朗日 (1736~1813) 也是這樣稱贊牛頓的,拉格朗日認(rèn)為,發(fā)現(xiàn)萬有引力定律只有一次機(jī)會(huì)。有著“科學(xué)史之父”美譽(yù)的比利時(shí)裔美國(guó)科學(xué)史家薩頓 (Sarton,1884~1956) 則認(rèn)為,秦九韶是“他那個(gè)民族,他那個(gè)時(shí)代,并且確實(shí)也是所有時(shí)代最偉大的數(shù)學(xué)家之一”。2005年,牛津大學(xué)出版社出版了《數(shù)學(xué)史:從美索不達(dá)米亞到現(xiàn)代》,該書重點(diǎn)介紹的12位數(shù)學(xué)家中,秦九韶是唯一的中國(guó)人。
因此,從嚴(yán)格意義上講,孫子定理應(yīng)稱為“孫子-秦九韶定理”,或“秦九韶定理”。
第六部分:結(jié) 語
二十世紀(jì)最大的物理學(xué)家之一的費(fèi)曼(R. P. Feynman,1918~1988)曾經(jīng)批評(píng)物理學(xué)教育說:“物理學(xué)家總是在傳授解題技巧,而不是從物理的精神層面來啟發(fā)學(xué)生?!边@里的“物理”改為“數(shù)學(xué)”也適用。
作為數(shù)學(xué)工作者,我想說的是:“我們的數(shù)學(xué)教育工作者總是在教孩子背公式、學(xué)套路,而不是從最基本的數(shù)學(xué)原理和知識(shí)架構(gòu)上去向?qū)W生傳授知識(shí),敢問這樣的教育稱得上是真正的教育嗎?”
聯(lián)系客服