Tuesday, 1 November 2016

此孫子非彼孫子

孫子兵法》人類歷史上最古老的兵學著作之一,對後世影響深遠。除了兵學之外,這本書對博奕與體育競技的策略上都有影響。東亞諸國日常生活中許多諺語與成語,也是來自這本書。今天的誠品日曆,建議大家再去品味這不對我們的文化影響深遠的著作。孫子兵法》被認為是公元前六世紀末的吳國人孫武所著,所以書名上的「孫子」應該就是指孫武。


不過,在東亞歷史上,還有另一位「孫子」,寫下了一本書叫做《孫子算經》。我第一次看到這本書的時候,直覺就想到,這本書的作者,會不會跟孫子兵法》的作者是同一人呢?畢竟,懂軍事的人,可能也要懂一點數學,才能「運籌帷幄之中,決勝於千里之外」(這句話出自《史記·高祖本紀》,形容的是張良,「運籌」就是用算籌進行計算)。當然,我這樣的直覺並沒有根據。從書中的內容來看,算題中出現「佛書」還有「棊局方一十九道」的用語,不可能是在公元前六世紀成書,因為佛教在公元一世紀後才傳入東亞,且 19x19 的圍棋也是魏晉之後才有的規格。學者根據書中的內容,大多將這本書的年代定在公元四至五世紀左右。所以,這本書的作者不可能是孫武。只不過,歷史與考古學上找不到任何紀錄,告訴我們作者是誰。我們只知道他應該生活在南北朝的年代。

從這本書的內容來看,很多是基礎的算術方法,也有稍微複雜的面積與體積問題,後者可能超越先秦算學的發展,但都包含於漢代成書的
《九章算術》之中。不過,這本書有兩個影響深遠的算題,在漢、魏之前的算學著作不曾出現。第一個算題是有名的「雞兔同籠」問題,大家在小學都做過。《孫子算經》的思路基本上跟大家在小學的算術思維一樣。原書題目是說:「今有雉、兔同籠,上有三十五頭,下九十四足。問雉、兔各幾何?」假設籠中全部都是雞,94足就是47隻雞,但籠中僅有35隻動物,少了12隻。兩隻雞的腳的數目等於一隻兔的腳的數目。所以,每少一隻動物,就等於用兩隻雞換一隻兔子,少了12隻動物就表示有12隻兔子。確定兔子數量之後,我們就得到雞有35 - 12 = 23隻。這個問題在後來許多的算書中出現,成為基本算術的重要練習題。這個問題傳到日本之後,就變成了有名的「龜鶴算」。

《孫子算經》中另一個名題,就是「物不知數」問題,本質上是一次同餘方程組問題。很多朋友在中學都時候就做過「韓信點兵」的問題,本質上就與此題相同。這個算題是人類歷史上首度出現一次同餘方程式與其解法。雖然「中國剩餘定理」、一次同餘方程組的一般解法與證明,都要等到很晚才出現,但這個題目跟它的解法的出現,仍然有重要的時代意義。下面是《孫子算經》現存最早的宋版書影,圖中有「物不知數」的問題與解法。


上面的內容都不是我研究的結果。我只是把一些資料整理一下。有興趣的朋友可以去搜尋 Lam Lay Yong、錢寶琮、郭書春等學者的著作。

No comments:

Post a Comment