中國古算經涉及動物的算題
甲骨文與數學之間有什麼關係呢?數學史大師洪萬生老師在閱讀了〈甲骨文與金文〉專欄後便開始思考,或許可以介紹中國古算文本涉及的算題。像是「誰發明了代數學?」「誰發明了微積分?」等等,也很容易引發一般人的好奇心。因此,出土甲骨文若蘊含有史料可以連結到數學知識活動,那麼,它們一定可以豐富我們對於中國古算輪廓的理解。而本篇文章,是洪萬生老師在擔任「甲骨文裡的動物與牠們的產地」活動的與談人後,以文章的方式補充在活動當中來不及說完的,中國古算經中隱藏的數學故事。
撰文|臺灣師範大學數學系 洪萬生 退休教授
前 言
西元2025年5月17日,江柏毅博士在臺灣大學科學教育中心舉行新書發表會,在這本《從考古看甲骨》中,他以野生動物為例,試圖「重建」文字裡的古代中國風貌。
我有幸應邀參加這個新書發表會的其中一位與談人。為此,我才開始思考或許可以介紹中國古算文本涉及的算題,至少權充「斜槓」的一種興味。當然,更確切的動機則出自江柏毅的「逐鹿中原」之說。不過,相關史料實在極為有限,我只好「混充」其他動物(但幾乎都不是野生),再輔以相關算題的設計(佈題problem posing)特性,讓讀者覺得不無收穫。
江柏毅的專欄《甲骨文與金文》引起我的興趣(必須感謝CASE「報科學」的平台),主要是因為在數學史的專業中,數學概念的「命名」與「演化」常涉及語源學(etymology)的應用,而這種與起源(genesis)有關的「題/提問」,譬如,「誰發明了代數學?」「誰發明了微積分?」等等,也很容易引發一般人的好奇心。因此,出土甲骨文若蘊含有史料可以連結到數學知識活動,那麼,它們一定可以豐富我們對於中國古算輪廓的理解。
西元2013年,我曾與HPM伙伴一起出版《數說新語》(註一),企圖在一些吾人習焉而不察,如「零」、「分(數)」、「方面」等等日常用語上,說一點「另類的」故事(註二)。其中,當然也有甲骨文的文字證據,值得我們一起來探索其演化意義。
現在,由於江柏毅的大作提及前述的鹿,以及狐、狸、兔,鳥類等等動物,所以,我就從中國漢代、南北朝時代問世的算書——前者如《筭數書》及《九章算術》,後者如《孫子算經》與《張丘建算經》,考察其中算題如何「運用」這些動物來佈題。這些實作或場景 (scenario) 與考古學專業完全無關,在此謹聊供談助,請允許我讓數學史來「蹭一下」考古學,但還是非常希望對前者的提問有所啟發。
逐鹿中原
《從考古看甲骨》一開始吸引我注意的,莫過於其中那一篇〈爭天下為何叫「逐『鹿』中原」?〉,作者企圖澄清所謂的「逐鹿中原」之意義。該成語是出自司馬遷所說的「秦失其鹿,天下共逐之」的爭霸比喻,不過,更早已有此說問世。那麼為什麼是鹿呢?根據江柏毅的說明,「至遲在西周時期,周王與各諸侯國開始有以苑欲圈養鹿群之習」,因此,該比喻「選擇逐鹿純粹是因為那是時人熟悉的日常場景。」其實,該文附帶的幾個例子的說明也很有趣,譬如,「麤,行超遠也,从三鹿。」後來,此字假借為「粗」,顯然是取「群鹿奔跑跳躍」的意思。另外,「麤」的異體字「麄」則也是「粗」的意思,與「細」詞性相反。在注解分數相加(《九章算術》「合分術」)時,唐初李淳風及其團隊指出:「數非一端,分無定準,諸分子雜互,群母參差,麄(粗)細既殊,理難從一。」(註三)
現在再回來審視「逐鹿」。既然鹿是這麼有價值的動物,說不定古代中國算題中也會有些許線索遺留,聊供我們這些「好事者」馳騁想像,即使它只是象徵性的說法?基於此一構想,我們瀏覽漢唐之間的算書,結果在《孫子算經》與《張丘建算經》這兩部南北朝時代的文本中,我們有幸各自找到涉及(獵)鹿的算題。先是《孫子算經》卷下第29題:
今有百鹿入城,家取一鹿,不盡;又三家共一鹿,適盡。問:城中家幾何?
答曰:七十五家。
術曰:以盈不足取之。假令七十二家,鹿不盡四。令之九十家,鹿不足二十。置七十二於右上,盈四於右下。置九十於左上,不足二十於左下。為維乘之,所得并為實。并盈、不足為法。除之,即得。(註四)
還有,《張丘建算經》(約431-430 CE)卷下第1-2題:
第1題:
「今有甲、乙、丙、丁、戊五人共分五鹿。欲以六、五、四、三,二差之。問各得幾何?答曰:」(註五)(孔刻本補)甲得一鹿四分鹿之二,以得一鹿四分鹿之一,丙得一鹿,丁得四分鹿之三,戊得四分鹿之二。
第2題:
今有鹿直西走,馬獵追之,未及三十六步,鹿回直北走,馬俱斜逐之,走五十步,未及一十步,斜直射之,得鹿。若鹿不迴,馬獵追之,問幾何里而及之?答曰:三里。
這三個問題看起來都與「獵鹿」有關,其中第一題以獵鹿之分配回推城中獵戶數,第二題涉及獵鹿之按比例分配,至於第三題則是針對獵鹿逃竄路線,以便策馬以捕之。
上一段提及的這種「追逐」問題,也見諸於《九章算術》卷六「均輸章」,茲將其第14題引述如下:
今有兔先走一百步,犬追之二百五十步,不及三十步而止。問犬不止,復行幾何步及之?答曰:一百七步七分步之一。
其實,本卷第12-13題也是追逐問題,題型相同,但題意中有「善行者」與「不善行者」互相追逐,故編輯在一起。不過,佈題是「模擬」獵犬追逐「野兔」的情境嗎?因為「家兔」(正如下文第四節將介紹的)直到西元1636年,才從南洋傳到泉州、樟州,再迅速北傳,顯然是極佳的經濟動物。(註六)
衰分問題
前引《張丘建算經》「五人共分五鹿」題,是典型的衰分問題(按比例分配)。這類問題早在漢簡《筭數書》就已經被編入第12題(按我們校勘的版本):
狐出關 狐、狸、犬出關,租百一十一錢。犬謂狸、狸謂狐:而(爾)皮倍我,出租當倍哉。問出各幾何?
得曰:犬出十五錢七分六,狸出卅一錢分五,狐出六十三錢分三。
术(術)曰:令各相倍也并之七為法,以租各乘之為實,實如法得一。
同理,該竹簡第13題也是處理「狐出關」(題名)的租稅問題。《筭數書》這部竹簡是十分珍貴的文本(186 BCE),它出自湖北張家山一座漢墓,墓主可能是一位名叫張新的長吏(這是史家劉金華的推測),他本為秦吏,後投降西漢,隨葬的《曆譜》記錄了他一生的大事記。這部算書可能就是他訓練小吏的講義,其中保留許多表示斷句的鉤識記號「ㄥ」,在古竹簡算書中頗為罕見,可見算學句子的精確閱讀,自古以來就極為重要。
至於狐、狸、犬皮為何「出關」?這當然可能源自關外冬日嚴寒氣候的需求,不過,它們竟然成為算題的元素,需求量看來不在少數。不過,根據江柏毅的論述,甲骨文是否有「狐」與「狸」字是個大災問!(註七)這些小動物的皮何時出關時需課徵關稅?恐怕值得我們進一步探索。
上引題之計算涉及關稅的比例分配(「衰分」),這種提問也見諸於《九章算術》這部中國古算經典(約 100 CE)。譬如其卷三「衰分章」第2題:
今有牛、馬、羊食人苗,苗主責之粟五斗。羊主曰:「我羊食半牛。」馬主曰:「我馬食半牛。」今欲衰償之,問各出幾何?答曰:牛主出二斗八升七分升之四;馬主出一斗四升七分升之二;羊主出七升七分升之一。
就是相關算題,其特色正如前一題,都運用「對話」(甚至「擬人化」)方式來佈題。
接著,《孫子算經》卷下第29題,也是類似的算題:
今有三雞共啄粟一千一粒。雛啄一,母啄二,翁啄四。主責本粟。三雞主各償幾何?答曰:雞雛主一百四十三。雞母主二百八十六。雞翁主五百七十二。
其中,雛、母、翁之用詞,後來再度出現在稍晚問世的《張丘建算經》之中,請參考下一節提及的「百雞術」。
與家禽相關的算題
在我們所引述的這些算書中,南北朝時代的《孫子算經》(約400 CE)包括頗多的算題涉及動物。譬如其卷下第27題,作者顯然虛擬一種有六首四足的「獸」,及一種有四首二足的「禽」來佈題:
今有獸六首四足,禽四首二足。上有七十六首,下有四十六足。問:禽、獸各幾何?答曰:八獸,七禽。
至於其「題型」則類似第30題「雞兔同籠」問題:
今有雞、兔同籠,上有三十五頭,下九十四足。問雞、兔各幾何?答曰:雞二十一,兔一十二。
「雞兔同籠」是很多人幼年學習數學的共同回憶,不管甜蜜或辛酸(註八)。不過,江柏毅卻告訴我們:〈月亮裡的兔子原來不是小白兔!〉,還有,我們所養的家兔其實是很晚才現身。根據他的說明,「中國在明崇禎年間自南洋引進中國白兔 (Chinese White) 之前並沒有家兔,十七世紀三〇年代以前所有的兔子實際上都是無法馴化的曠兔屬 (Lepus) 曠兔。」如此,與雞關在一起的兔子絕非小白兔,而是無法馴化的曠兔(註九)。在第五世紀,中國算題中虛擬一籠家禽雞與野兔來佈題,不知佈題者是否曾經看到與雞打架的曠兔?
此外,《張丘建算經》還有第31題涉及魚類:「今有九里渠,三寸魚,頭頭相次,問魚得幾何?答曰:五萬四千。」第33題涉及禽鳥:「今有出門望見九隄。隄有九木,木有九枝,枝有九巢,巢有九禽,禽有九雛,雛有九毛,毛有九色。問各幾何?」(註十)
另一方面,稍晚於《孫子算經》的《張丘建算經》卷下第38題如下:
今有雞翁一,直錢五;雞母一,直錢三;雞雛三,直錢一。凡百錢買雞百隻。問雞翁、母、雛各幾何?
這個被稱為「百雞術」的問題,本質上涉及「不定解析」概念,綜合「輾轉相除」與「方程術」可以解決。它被認為流傳到印度及中亞,其中名詞被置換(譬如「雞」換成「水果」),但題型不變(註十一)。不過,中國人要一直到十九世紀中葉,清末數學家時曰淳在掌握了傳入的相關西算關鍵概念之後,才提出完整的解法(註十二)。
結 語
根據本文的敘說,我們可以發現:在它的早期發展過程中,數學的紀錄或物件,多半需要考古學或甲骨文的跡證,尤其在「造字初心」面向上,還有不少的提問空間。事實上,要不是江柏毅「提問」並試圖回答:「甲骨文裡的動物和它們的產地」,我也很難想像「古算經涉及動物的算題」之意義。不過,我們數學史這一邊可以回饋給考古學或甲骨文的,看起來極為有限。這是學科的本質限制,我們並不在意。無論如何,這些算題提供了極大的空間,允許我們想像古代學算的「佈題者」,如何運用日常生活中的動物,設計有趣的問題,傳遞給下一代的學習者。
註釋
註一:HPM是history and pedagogy of mathematics 的縮寫,既代表一個團體,也代表一個學門。可參考臺灣數學史教育學會網站。
註二:有關「數」的造字初心可參考蘇俊鴻,〈數目・數字・數碼〉。「數」是一個兼具形聲與會意的文字,金文此一文字,其形狀與小篆大致相同。在小篆中,它從「攴」(手指象形),「婁」聲。又,「婁」本作「空」解,如「數」之本義為「計」,那麼,由於「婁」的本義是「空」,計算時須心無雜念,才能專心致之,故數從婁聲。
註三:郭書春白話文翻譯如下:「合分,是因為分數不止一個,分數單位也不同一;諸分子互相錯雜,眾分母參差不齊;從道理說難以遵從其中一個數。」引郭書春,《九章算術譯注》,頁23。
註四:有關以「盈不足術」求解之說明,參考紀志剛,《《孫子算經》導讀》,頁44-47。
註五:依《算經十書》孔繼涵刻本補之。
註六:參考江柏毅,《從考古到甲骨》,頁217。
註七:江柏毅,〈名實不符、爭議不斷的「狐」、「狼」、「狸」與「貓」〉,載江柏毅,《從考古代甲骨》,頁176-189。
註八:有一位出身南洋的華人數學家,曾經回憶他幼年時解「雞兔同籠」的痛苦經驗,他說:雞,尤其是公雞(雞翁),不是很兇嗎?小白兔怎麼可能與它同關一籠?
註九:江柏毅注解指出:「全世界的兔科動物共有十一個屬,其中只有穴兔屬種才能被馴化成為家兔。中國的野兔共有八個種,但都是曠兔屬種。」江柏毅,〈月亮裡的兔子原來不是小白兔!〉,《從考古看甲骨》,頁217。
註十:西方數學史的一個案例(算題以詩句表達,首句是「當我走到聖伊維斯時」),出自斐波那契 (Fibonacci) 的《計算書》,不過,其因子改成7。參考奔特等,《數學起源》,頁49。
註十一:印度數學史可參考洪萬生主編、英家銘協編,《數之軌跡》第II輯,第1章。
註十二:時曰淳傳可參考《清史稿》卷507。
參考文獻
- 江柏毅 (2025),《從考古看甲骨》,臺北:貓頭鷹出版社。
- 洪萬生、林倉億、蘇惠玉、蘇俊鴻 (2006),《數之起源》,臺北:臺灣商務印書館。
- 洪萬生、蘇惠玉、蘇俊鴻、郭慶章 (2013),《數說新語》,臺北:開學文化出版社。
- 洪萬生主編、英家銘協編 (2024),《數之軌跡》第II輯,臺北:三民書局出版社。
- 紀志剛主編 (1999),《孫子算經、張丘建算經、夏侯陽算經導讀》,武漢:湖北教育出版社。
- 奔特等 (Bunt et. al.,)(2019),《數學起源》(The Historical Roots of Elementary Mathematics),黃美倫、林美杏、邱佩瑜、王瑜君、黃俊瑋、劉雅茵等中譯,臺北:五南出版社。
- 郭書春、劉鈍點校 (2001),《算經十書》,臺北:九章出版社。
- 郭書春 (2010),《九章算術譯注》,上海:上海古籍出版社。
- 蘇俊鴻 (2014),〈數目.數字.數碼〉,載洪萬生等,《數說新語》(臺北:開學文化出版社),頁39-44。
- 劉金華 (2009),《張家山漢簡《算數書》研究》,香港:華夏文化藝術出版社。
§編輯的話§
「甲骨文裡的動物與牠們的產地」是CASE報科學專欄〈甲骨文與金文〉作者江柏毅老師的著作《從考古看甲骨:文字裡的古代中國(野生動物篇)》的新書發表會,感謝數學史大師洪萬生老師接受我們的邀請,前來擔任活動的與談人,並在活動結束之後,非常費心地撰寫了這篇文章,補充活動當天未分享的數學史故事。洪萬生老師與HPM夥伴們長期關注數學教育,也前後撰寫了不少書籍、文章在訴說數學史的故事,有興趣的朋友一定要去翻翻看這些經典的作品。