?

秦九韶對大衍術的筭圖表達
——基于《數書九章》趙琦美鈔本(1616)的分析

2017-07-18 12:04朱一文
自然科學史研究 2017年2期
關鍵詞:連線文獻算法

朱一文

(中山大學哲學系暨邏輯與認知研究所,廣州 510275)

秦九韶對大衍術的筭圖表達
——基于《數書九章》趙琦美鈔本(1616)的分析

朱一文

(中山大學哲學系暨邏輯與認知研究所,廣州 510275)

秦九韶的《數書九章》(1247)是中國數學史上的名篇,其所載的大衍總數術是一項世界級成就。然而,以往的數學史研究并未從文本表達形式的角度分析秦氏大衍術。從對最接近秦書足本的趙琦美鈔本(1616)的分析看,秦氏對大衍術的表達運用了文字、籌碼、筭圖、連線等多種文本形式。一方面,秦氏著書的部分原因是為了參與宋廷改歷。另一方面,秦氏認為數術分成內算與外算兩部分,與歷算、《周易》相關的大衍總數術屬于內算,其核心算法大衍求一術則與傳統方程術不同,應獨立為一項數學內容。因此,依據“其用相通,不可歧二”的原則,秦氏有理由公開揭示大衍術。而且,由于筭圖能夠呈現算法的全部籌算過程,故而成為秦氏表達原先“算而不書”的大衍術的最佳工具??傊?通過分析秦九韶的著書動機、天文歷算與傳統數學的差異、筭圖與連線的功能,我們可以全面理解秦氏記述大衍術的歷史事實。

秦九韶 大衍術 《數書九章》 趙琦美 筭圖 連線

0 前 言

南宋秦九韶(1208[1]~約1261)《數書九章》[2—5](1247)所載之大衍總數術①從現代數學的角度看,“大衍總數術”是求解一次同余方程組的算法,外國學者稱之為“中國剩余定理”(Chinese Remainder Theorem)。比利時學者U. Libbrecht(李倍始)認為西方數學直到歐拉(Euler,1707~1783)、高斯(Gauss,1777~1785)才取得與秦九韶相當的成就,并且他們的算法在一般性上不如秦九韶的方法,參見文獻[6]。,歷來為國內外學術界所關注②國內學者從數學史的角度研究秦九韶大衍術,始于錢寶琮,參見文獻[7]。吳文俊主編的論文集,有十多篇論文研究大衍術,參見文獻[8]。外國則有U. Libbrecht 、李約瑟(J. Needham)等學者的專論,參見文獻[6,9]。。一般認為,大衍總數術與《孫子筭經》“物不知數”、歷法中求解上元積年等問題有關*此說最先來源于錢寶琮。他說:“《孫子算經》里‘物不知數’問題解法不是作者的向壁虛造而很可能是依據當代天文學家的上元積年算法寫出來的”,參見文獻[10]。李文林、袁向東同意錢寶琮的看法,參見文獻[11]。李繼閔的研究表明,歷家演法用的是演紀術(類似于代入法求解同余方程式組),而非大衍術(類似于孫子定理的公式法求解同余方程式組),參見文獻[12,13]。曲安京則進一步表明,并非所有元素都參與上元積年的計算(即相當于限制所列同方程式組的數量),參見文獻[14]。。其核心程序“大衍求一術”*“大衍求一術”是“大衍總數術”的核心程序,用來求解乘率,其正確性已為學界所證明,參見文獻[15]。但以往常常與“大衍總數術”混淆,參見文獻[16]。則與“歷家方程”相關*嚴敦杰首先注意到兩者的關系,認為歷法方程不是《九章筭術》的方程,參見文獻[17]。在此基礎上,王翼勛與王榮彬、徐澤林近來分別給出歷家方程的兩種推測,都不是九章之方程,參見文獻[18—20]。筆者則認為歷家的方程就是《九章筭術》的方程,秦九韶將之優化后成為大衍求一術,參見文獻[21]。。然而,其中涉及的天文歷算與傳統數學的關系,仍有進一步研究空間。近年來,鄭誠與筆者合作研究,先是表明《數書九章》的一個明代版本——趙琦美(1563~1624)鈔本(1616,簡稱“趙鈔本”),應是迄今所見最接近秦書的足本;尤其是該本筭圖之連線,具有獨一無二的研究價值,但尚未得到充分研究*李迪首先指出了《數書九章》的符號化和筆算傾向,參見文獻[22]。Karine Chemla(林力娜)討論了與圖相關的宋元數學轉變,參見文獻[23,24]。筆者也研究了《數書九章》中筭圖對方程算法的作用,參見文獻[25]。2009年,鄭誠看到北京國家圖書館所藏趙琦美抄本。我們合作研究揭示出其筭圖、連線等文本形式具有不可取代的史料價值,參見文獻[26]。趙鈔本現藏于北京國家圖書館,近來《四庫提要著錄叢書》影印收入該版本,方得便捷之用。。繼而,我們將趙鈔本與清道光二十二年(1842)印刻的宜稼堂叢書本(簡稱“宜稼堂本”)作對比,揭示出兩者的主要區別在于后者筭圖之中沒有連線,而作為秦書標準本的宜稼堂本對后世學界的研究影響深遠*《數書九章》原稿已軼。明初《永樂大典》分問收入“筭”字條,今僅存三問。清中葉,該書被輯入《四庫全書》,但做了大量未做說明的修改。道光二十二年,郁松年(1812~1888)刊刻《數書九章》宜稼堂叢書本之后,該版本很快成為研究是書的標準版本,對后世的影響極大。四庫本、宜稼堂本與趙鈔本的主要區別不在于文字的互異,而在于連線之多寡:四庫本筭圖有少量連線,宜稼堂本筭圖全無連線,趙鈔本筭圖有數百根連線,參見Yiwen Zhu, Cheng Zheng. On the First Printed Edition of the Mathematical Book in Nine Chapters (1842).待刊。。因此,趙鈔本提供了繼續研究大衍術的空間。

在做進一步分析之前,我們先探討一個問題:趙鈔本完成于明萬歷四十四年,晚于秦九韶原作近370年,是否可以展現《數書九章》原貌?尤其是其筭圖之連線是否能反映秦九韶原意?*2015年7月8日及2016年5月28日,筆者分別于巴黎和上海參加第14屆東亞科學史會議和第5屆上海數學史會議作相關學術報告,與會專家們都向筆者提出了“趙鈔本之連線是屬于秦九韶原作”這一問題。本文匿名審稿專家也提出了這一疑問。因此,本文嘗試作一解答?;趯η貢姹臼返难芯縖22,27],我們知道是書明初入藏文淵閣,后經明代藏書家王應麟(?~1644)鈔出,趙琦美又鈔錄了王鈔本*審稿人認為有必要考證國家圖書館藏本就是趙氏原鈔本,而非其后他人轉鈔本。筆者認為這一質疑從邏輯上是有道理的,但是在沒有明顯的否定性證據出現之前,筆者只能依據以往數學界的共識認定該藏本就是趙氏原本。。秦書流傳的另一條線索是,該書文淵閣本被分問鈔入《永樂大典》“筭”字條(簡稱“大典本”),現僅存卷16343三問,依次為“筭回運費”、“軍器工程”、“推求典本”([28],7011、7015~7017頁)。將大典本三問與趙鈔本對比可知:“筭回運費”兩方均無筭圖;“軍器工程”兩方均有筭圖連線,大典本共三條連線,此三線與趙鈔本對應部分一致,但趙鈔本連線更多;“推求典本”兩方均有筭圖,但大典本無連線、趙鈔本有連線。乾隆年間編《四庫全書》,從《永樂大典》中輯出秦書(簡稱“四庫本”),筭圖保有少量連線*與大典本僅存的三問對比,四庫本《數書九章》“筭回運費”亦無筭圖連線,“軍器工程”、“均貨推本”均是有圖無線。參見文獻[5],515、569~571、600~609頁。。后被刊刻為宜稼堂本,則筭圖全無連線。由此,我們可以確定秦書文淵閣本筭圖含有連線。另一方面,與秦九韶同時的楊輝在其算學著作中多處用到連線,這說明13世紀也有其他人在算書中運用連線的表達方式。綜合考慮上述事實,筆者認為雖然秦書原稿的失傳導致我們無法確定秦氏是否運用連線,但是有跡象表明趙鈔本筭圖之連線很可能為秦書原有,而非為后人添加*反之,如果該連線為后人添加,那么這位作者必然是處于《數書九章》成書至《永樂大典》完成之間的160余年之間。當然,從邏輯上我們并不能排除這種可能。但是筆者認為在沒有明顯的證據表明連線為后人添加之前,只能依據已有的文獻證據認為該連線為秦九韶原稿既有。。

我們統計了趙鈔本中連線的運用,發現筭圖、連線運用的多寡與算法、問題的復雜程度基本成正相關。例如,全書第12問“治歷演紀”運用了諸問中最多的77根連線,而該問正是我們理解大衍術的關鍵文獻。因此,很有必要從筭圖連線等文本表達形式的角度再分析大衍術*審稿人認為有必要論證研究趙鈔本筭圖連線的必要性。筆者十分贊同,具體的統計事實及分析詳見Yiwen Zhu. On Qin Jiushao’s Writing System in the Mathematical Book in Nine Chapters.待刊。。本文除第一節“前言”之外,分作四節。第二節概述趙鈔本中獨特的書寫系統,以作為后面分析的預備知識。第三節以趙鈔本為基礎,分析秦九韶運用筭圖連線表達大衍求一術的三種方式。第四節分析秦九韶論述的大衍術與方程術、《周易》之間的關系,及其建立的內算與外算的數學體系。這些論述反映了秦氏公開揭示大衍術的理由。最后一節結合具體的歷史語境以及天文歷算與傳統數學的關系,探究秦九韶的著書動機,以期對秦氏運用筭圖連線表達大衍術獲得一個全面、深入的理解。

1 《數書九章》趙鈔本的書寫系統

趙鈔本有一套獨特的“符號化”書寫系統,包含數碼、連線以及由它們組成的筭圖。本節概述之,以作為后面分析的基礎。

1.1 體例與結構

《數書九章》9卷,每卷9問,總計81問。每問都有“題”、“問”、“答”、“術”、“草”五部分;在26問中有幾何示意圖。秦九韶自序云:“立術具草,間以圖發之”([3],98頁),即以草釋術,以圖釋草,三者依次列出*審稿人指出,白尚恕、李兆華認為:“《數書九章》全書共18卷,每卷所列問題多寡不一,每問之后有答,答后有術、術后有草。有的草后具有算圖,有的配有示意圖?!稊禃耪隆分械膯?、答、術、草都有一定的格式,而算圖、示意圖則是根據具體情況而定?!眳⒁娢墨I[29],104頁。實際上,《數書九章》的筭圖并非總在草之后,還有可能放置在問與答之間、答與術之間、術與草之間等其他位置。?!皥D”在《數書九章》中往往是“筭圖”的簡稱,秦氏四次提到了“筭圖”之名,更多時候是說“具圖如后”。圖1是趙鈔本中的一張關于復比例“燕翅算法”的筭圖。

圖1 趙鈔本中的一張筭圖(第77問。[3],315頁)

我們仔細分析了趙鈔本81問的文本結構,發現術、草、圖三者的關系十分復雜??傆?5問有筭圖,其中42問用了連線。在有筭圖的45問之中,筭圖與術、草共有三種關系:第一,筭圖是草的一部分,這種情況下沒有“圖”或“筭圖”的名稱,總計20問;第二,筭圖是術的一部分,同樣不書“圖”或“筭圖”之名,總計3問;第三,獨立的筭圖,往往有“圖”或“筭圖”之名,或放置在“問”與“答”之間(3問),或在“答”與“術”之間(3問),或在“術”與“草”之間(6問),或在草之后(11問),總計23問*《數書九章》第42問“均科錦稅”,在術和草中都有筭圖,同時符合第一和第二種關系,統計時計算了兩次。因此,總計22問處于第一和第二種關系下,總計23問處于第三種關系下。此外,沒有連線的3問(第1、3、73問)都處于第一種關系之下。。由此可見,秦氏對于筭圖的用法是多樣的,我們必須逐題仔細分析。

1.2 數碼系統

表1 趙鈔本的籌碼系統

1.3 連線系統

趙鈔本最大的特色是用線連接籌碼表征運算*筆者曾經在文獻[26]中歸納出了類似的表征規則。近來通過對《數書九章》的全面研究,近來筆者統計總結出了更精確的規則:趙鈔本中一共出現了726根連線,其中700根用于表達加、減、乘、除,占96.4%。剩下的少量連線,有表達結果、開方、求等數、待除、移動數字等5種類型。由于這不是本文的重點,這里簡單概述之。。這些連線總計可以表達9種運算含義,但最主要的還是加、減、乘、除4種。連線可以分為4種,即單實線、雙實線、單虛線、單波浪線。其主要連接規則有兩數首首連接、尾尾連接、首尾連接3種。具體而言,有如下規則:

單波浪線連接兩數的首尾,表乘法;

單虛線連接兩數的首尾,表除法;

雙實線連接兩數的首首或尾尾,表加法;

單實線連接兩數的首首或尾尾,表減法。

上述規則涵蓋了趙鈔本連線的大部分情況,使得大多數情況下加、減、乘、除可以在筭圖中的表征具有互不干擾的唯一性。圖1中即有連線表達加、乘、除3種情況。此外,還有一種情況就是線與線連接表達復合運算,這恰好出現在我們即將要討論的大衍術之中。

2 秦九韶對大衍求一術的筭圖表達

《數書九章》“大衍類”9問,其中第2問“古歷會積”進行四分歷的上元推算;“天時類”9問,其中第3問是“治歷演紀”進行開禧歷的上元推算。因此,全書共有10題涉及大衍術(大衍類9問+“治歷演紀”),也共有10題涉及天文計算(天時類9問+“古歷會積”)。

秦九韶首先在全書第一問給出了“大衍求一術”術文:

大衍求一術云:置奇右上,定居右下,立天元一于左上。先以右上除右下,所得商數與左上一相生,入左下。然后乃以右行上下以少除多,遞互除之。所得商數隨即遞互累乘,歸左行上下。須使右上末后奇一而止。乃驗左上所得,以為乘率?;蚱鏀狄岩妴我徽?便為乘率。*在“蓍掛發微”的術中,秦九韶還給出該程序的簡化版:“大衍求一術云:以奇于右上,定母于右下,立天元一于左上。先以右行上下兩位以少除多,所得商數乃遞互乘內左行,使右上得一而止。左上為乘率?!?[3],103頁)([3],103頁)

“大衍求一術”是“大衍總數術”的核心算法。從現代數學的角度看,該算法相當于求ak≡1(modp)(a與p互素)的k(即乘率)。大衍求一術需要依靠籌算來實施,但從文字來看是不易理解的。因此,秦九韶進一步給出了多種筭圖解釋。

前文已述,《數書九章》中筭圖與術、草有3種關系:筭圖是草的一部分,是術的一部分,以及獨立的筭圖。前兩種關系可以說是依附的筭圖。進一步分析可知,以筭圖連線表達算法大致也有3種撰寫模式:在依附的筭圖之下,有“筭圖混合文字”和“筭圖解釋先前文字”2種;在獨立的筭圖下,有“筭圖配合連線描述算法”1種。秦氏撰寫大衍術恰好運用了這3種模式,下面詳細論述。

2.1 依附的筭圖

全書第一問“蓍卦發微”中,秦九韶相當于求解3k≡1(mod4)。圖2即其算草,筭圖為其一部分。為了便于分析,筆者把它分作9段,從右到左分別以天干“甲”到“壬”標識??梢郧宄乜吹?甲、丙、戊、庚、壬段為文字,乙、丁、己、辛段為筭圖,兩者交錯進行。

圖2 “蓍掛發微”中的大衍求一術([3],104~105頁)

甲段:“凡奇數得一者,便為乘率。令左下衍是三,乃與本母四,用大衍求一術入之。列衍奇三于右上,定母于右下,立天元一于左上,空其左下?!贝硕挝谋窘o出了大衍求一術的布算,即右上、下與左上、下分別布置4個數:3、4、1、0。

乙段筭圖中間4個數符合甲段的布算。但是乙圖右行最上0、最下1是無法從甲段中得到說明的*對大衍求一術的分析中,共涉及6個位置。中間4個,依據秦九韶自己的說法,筆者依次稱為“左上”(即天元)、“左下”(即歸數)、“右上”(即衍奇)、“右下”(即定母)。右行最上下是商的位置,筆者稱之為“右行最上”和“右行最下”。。

丙段:“先以右上少數三除右下多數四,得一為商。以商一乘左上天元一,只得一,歸左下。其右下余一?!贝硕蔚谝痪湓捊o出乙圖中右行最上0和最下1的來源。這就是說,乙圖的6個數中,中間4個是由甲文解釋的,右行最上下2個則是由丙文的第一句話解釋的。因此,乙圖動態連接甲、丙文。丙段后兩句話,給出了中間4個數的變化:右上3、右下1、左上1、左下1。

丁段筭圖中間4個數符合丙段描述。由此可知,丙段實際可以分成兩部分,第一部分解釋乙圖右行最上下2個數,第二部分解釋丁圖中間4個數。因此,丙文動態連接了乙圖和丁圖。同樣,丁圖右行最上2、最下0,是無法從丙段獲得解釋的。

戊段:“次以右下少數一除右上多數三,須使右上必奇一筭乃止。遂于右行最上商二,以除右衍必奇一。乃以上商命右下定,余一。除之,右衍余一?!贝硕我嘞冉o出丁圖右行最上下2個數的解釋。這樣,我們知道丁圖與乙圖一樣,其中間4個數,由其前一段文本丙的后半部解釋;而其右行最上下2個數,則由其后一段文本戊的前半部解釋。故丁圖亦動態連接了丙文和戊文。戊文的后半段,給出了中間4個數的變化:左右上下都是1。

己段筭圖中間4個數符合戊段后半部的解釋。這就是說戊文也和丙文一樣,前半部分解釋其前一張圖丁的中間4個數,后半部分解釋其后一張圖己的右行最上下2個數。因此,戊文亦動態連接了丁圖和己圖。因為右上已經是1了,所以已圖的右行最上下無需進一步解釋。己圖的右行最上2與丁圖同,最下則去除了“○”。

庚段:“次以商二與左下歸數相乘,得二。加入左上天元一內,共得三?!贝硕问腔诩簣D給出計算,得到左上天元為3。由此可見,己圖是基于戊段后半段,而庚段又是基于己圖。從己段到庚段,是先后的關系。

辛段筭圖是庚段的計算結果。辛段的文字:“驗至右上得一,以左上所得為乘率”是說根據大衍求一術的規則,右上得1,左上3就是乘率,算法終止。即得到3×3≡1(mod4)。從庚段到辛段,也是先后的關系。

壬段:“今驗右上衍余得一,當止。乃以左上三行為乘率。與前三者乘率各一,與衍定圖數對列之,通計三行?!贝硕吻鞍氩糠执_認了辛段,后半部分則引出后面的算法。因此,從辛段到壬段,依舊是先后的關系。

綜上所述,圖2文字與筭圖的關系是:甲文給出乙圖中間4個數,乙圖右行最上下2個數由丙文前半部給出,丙文后半部給出丁圖中間4個數,丁圖右行最上下2個數由戊文前半部給出,戊文后半部給出己圖,庚文基于己圖計算,辛圖是庚文的結果,壬文終止算法。所以,秦九韶在圖2中采取了兩種不同的撰寫模式。就筭圖與文字的關系而言,從甲到戊秦氏采取了“筭圖混合文字”的模式,從己到壬則運用了“筭圖解釋先前文字”的模式。此外,在“筭圖混合文字”的模式下,空位都用“○”標識,而在“筭圖解釋先前文字”的模式下,空位不再用“○”。這反映出“○”的意義與撰寫模式有關。

撰寫模式的差別還造成了讀者閱讀順序的不同。從甲到戊的閱讀順序是迂回的:甲文到乙圖中間4個數到丙文前半部,回到乙圖右行最上下2個數,再到丙文后半部到丁圖中間4個數到戊文前半部,再回到丁右行最上下2個數,再到戊后半部。從己到壬的閱讀順序則是直線的:己圖到庚文到辛圖文到壬文。

2.2 獨立的筭圖

在“治歷演紀”問中,秦九韶用到了兩次大衍求一術,分別相當于求解4108k≡(4108, 16900)(mod 16900)和377873l≡(377873, 499067) (mod 499067),其中(a,b)是指求a與b的最大公約數,即古人說的等數。在這兩例中,秦氏的撰寫模式與“蓍卦發微”問不同,僅以第一例說明。該問術曰:“得斗分。與日法,用大衍術入之,求等數、因率、蔀率?!?[3],130頁)草曰:“只以四千一百八分為斗分。與日法,以大衍術入之,求得五十二為等數,一百四十四為因率,三百二十五為蔀率?!?日法16900是開禧歷(1207~1251年間行用)的公分母,斗分4108是回歸年分數部分的分子,即開禧歷回歸年長度為365+4108/16900日。所得52是4108與16900的最大公約數(即等數),144則為所求乘率k(即因率),蔀率325是16900÷52所得。([3],131頁)顯然,無論術還是草,都沒有提到大衍求一術具體的程序。因此《數書九章》趙鈔本給出了如下獨立筭圖,圖3。同樣地,為了方便分析,筆者用十二地支從右到左為標識把整個筭圖分作12部分。

圖3 “治歷演紀”中的大衍求一術([3],133~134頁)

子圖布算中間4個數,右行上下4108和16900,左行上下1和0。一條單虛線連接了4108的8和16900的9,指出做除法。右行最下則是商4。

子圖16900在丑圖中變成了468,即16900÷4108=4…468。一條單波浪線連接了左上的天元1和右行最下的商4,指出做乘法。一條雙線連接了這條單波浪線和左下的“○”,表示把前面乘法的結果與之相加。

寅圖左下變成了4,即1×4+0=4。一條虛線連接了右行上下4108和468兩個數,指出做除法。所得到的商8寫在右行最上。

卯圖右上變成了364,即4108÷468=8…364。一條單波浪線連接了左下數4和右行最上的商8,指出做乘法。這條線與天元1用雙線相連,表示做加法,即8×4+1。

辰圖、巳圖、午圖、未圖重復上面的計算過程。申圖一條單虛線,連接了右行上下數52和104,表示做除法。其結果1,放在右行最下(因要求等數)。酉圖中104變成了52,右行上下數相等,即等數。左上144即為乘率,即4108×144≡52(mod16900)。酉圖一條單波浪線連接左上144和右行最下的1,即做乘法;其結果用雙線連接到左下數37,即做加法。戌圖左下數變成了181,即144×1+37=181。一條雙線連接左行上下數,即做加法。亥圖左下數變成了325,即144+181=325*亥圖左下實際為125,應系誤漏了兩豎。。

總之,圖3中前后筭圖通過連線相互關聯。在圖子、寅、辰、午、申中右行上下2個數通過虛線連接指出做除法,其結果反映在圖丑、卯、巳、未、酉的相應位置上。同時,在圖丑、卯、巳、未、酉中,通過單波浪線和雙線指出一個先乘后加的復合運算,其結果反映在寅、辰、午、申、戌的左行上下。并且,空位始終以“○”來標示。

因此,在“獨立筭圖”的撰寫模式下,筭圖關系和閱讀順序是:圖子中間四數到連線到圖子右行最上下2個數,到圖丑中間4個數到連線等等。連線把筭圖動態聯系起來,使其具有算法的意義。

3 秦九韶的數術體系及其對大衍術的論述

《數書九章》趙鈔本中并非所有問題都有筭圖與連線。筭圖、連線運用的多寡與算法、問題的復雜程度基本成正相關性。作為理解大衍術關鍵的“治歷演紀”題有諸問中最多的77根連線,這并非偶然。因此有必要探究秦九韶對于大衍術的看法。事實上,通過一系列論述,秦九韶構建了他的數學系統,明確了大衍術與方程術、《周易》之間的關系,并賦予其獨特的位置。

3.1 大衍求一術與方程術

秦九韶在“治歷演紀”問中說:“卻與閏縮、朔率列號甲乙丙丁四位。乘除削減,謂之方程?!翘刂霉g繁名,初無定法可傳。甚是惑誤后學,易失去古人之意?!?[3],130頁)根據秦氏在此題圖草,此處方程與大衍求一術有關。

秦九韶在序言[31]中談到了方程與大衍求一術的看法:

今數術之書尚三十余家。天象、歷度謂之綴術;太乙、壬、甲謂之三式,皆曰內筭,言其秘也?!毒耪隆匪d即《周官》九數;系于方圓者為叀術,皆曰外筭,對內而言也。其用相通,不可歧二。獨大衍法不載《九章》,未有能推之者,歷家演法頗用之,以為方程者,誤也。([3],98頁)

秦九韶把“數術”分為內算和外算。內算包括天象、歷度、太乙、壬、甲等天文數術的內容,外算則指以《九章筭術》為代表的傳統數學。并且認為兩者相通,不可歧二。秦氏接著指出《九章筭術》沒有記載大衍法,并批評歷算家誤解其為方程*筆者認為實際上是秦氏有意誤解了歷算家的看法,歷家之方程就是《九章筭術》中的方程,只是用法不同而已,參見文獻[21]。。這里的大衍法指大衍求一術。這樣,秦氏實際上不同意歷家認為的大衍求一術與方程的關系,認為其應該是一項獨立的數學內容。

3.2 大衍總數術與《周易》

《數書九章》第一問“蓍掛發微”與大衍之名均來自于《周易》。在序言中秦氏把大衍總數術與《周易》相聯系[32,33]:

昆侖磅礴,道本虛一。圣有大衍,微寓于《易》。奇余取策,群術皆捐。衍而究之,探隱知原。數術之傳,以實為體。其書《九章》,惟茲弗紀。歷家雖用,用而不知。小試經世,姑推所為。述大衍第一。([3],98頁)

秦九韶首先指出大衍寓含在《周易》之中。繼而“奇余取策,群術皆捐”表明此處大衍指大衍總數術。由于該法與歷法計算有關,太乙、壬、甲則一般被稱為《周易》三式,因此我們推測秦氏認為大衍總數術屬于內算*其實,大衍總數術的一般性程序已經在《孫子筭經》中被提出,只是卻少了求解乘率的關鍵程序(即大衍求一術)。因此秦的分類未必正確。?!捌鋾毒耪隆?惟茲弗紀;歷家雖用,用而不知”是秦氏重復先前的看法,指出《九章筭術》未載大衍求一術,歷家則用而不知,誤為方程。

綜合秦九韶的系列論述,我們可以發現秦氏建立了一套完整的數術知識體系。他首先把數術分為內算和外算兩部分。內算指天文數術,一般而言不著于書(“言其秘也”);外算則指《九章筭術》為代表的傳統數學,是公開的。秦九韶認為內外算的用處是相通的,兩者并無本質區別(“其用相通,不可歧二”)。實際上,考慮到《數書九章》原名《數術》,秦氏的分類顯然有其目的。在此數術體系之下,與歷法、《周易》都相關的大衍總數術,屬于內算;其核心程序大衍求一術被歷家誤為方程,實際應獨為一項數學內容??偠灾?秦氏建立的數術體系及其對大衍術的相關論述給予了其公開揭示大衍術的正當理由。

4 結 論

秦九韶建立數術體系,論述大衍與方程、《周易》的關系,并利用文字、籌碼、筭圖、連線等多種文本形式撰寫大衍術。結合秦氏生平等歷史背景([6],22~34頁;[7],60~65頁;[26],98~101頁;[34—38]),我們可以對這一事實獲得全面的理解。秦氏的父親秦季槱是南宋的中層官吏。秦九韶早年隨父親來到首都臨安(今杭州),跟隨太史和“隱君子”*李迪推測這位隱君子是陳元靚,參見文獻[37]。學習天文數學([3],105頁)。1226到1244年,秦氏有4項下層的任職*分別是:郪縣縣委、差校正、蘄州通判、和州太守。參見文獻[38],206~207頁。。淳祐四年(1244)八月,秦氏任建康府通判;同年十一月,其母逝世,解任回湖州為母守孝*“秦九韶,通直郎。淳祐四年八月任,十一月丁母憂解任?!眳⒁娢墨I[39]。。正是在此期間,秦氏完成了《數書九章》。

依據時人陳振孫的記載,可知《數書九章》原名《數術》,被歸入“歷象類”*陳振孫記載:“《數書大略》九卷,魯郡秦九韶道古撰。前世算術,自《漢志》皆屬歷譜家。要之數居六藝之一,故今《解題》列之雜藝類,惟《周髀》為蓋天遺書,以為歷象之冠。此書本名《數術》,而前二卷大衍、天時二類于治歷測天為詳。故亦置之于此。秦博學多能,尤遂歷法。凡近世諸歷,皆傳于秦。所言得失,亦悉著其語云?!眳⒁娢墨I[40]。。事實上,該書大衍、天時兩類確實包含了大量的歷法計算*嚴敦杰對比了《數書九章》與《宋史》中對于開禧歷的記述,兩者基本一致,參見文獻[36]。。開禧歷(1207~1251年行用)到淳祐年間已經十分不精確。淳祐四年和八年宋廷分別兩次征召民間人士參與改歷*《宋史》有兩條記載,“淳祐四年,兼崇政殿說書韓詳請召山林布衣造新歷,從之”,以及“八年……請召四方之通歷算者至都,使歷官學焉?!眳⒁娢墨I[41]。。秦氏在該書完成的第二年,將之進于朝廷*時人周密記載:“以歷學薦于朝,得對,有奏稿及所述《數學大略》?!眳⒁娢墨I[42]。秦九韶所進的書稿既可能是《數書九章》的全本,也可能是其中的大衍、天時兩類。根據現有史料,還無法確定。。因此,秦氏著書的部分原因是參與改歷。

秦九韶把數術分為內算和外算兩部分,與歷法、《周易》有關的大衍總數術屬于內算,而大衍求一術應為區別于方程的獨立數學內容?;凇捌溆孟嗤?不可歧二”的原則,秦氏有理由公開揭示大衍術??墒?秦氏為何需要這個理由?我們知道上元的推算從漢代就開始了,但是這種算法直到秦九韶之前,都沒有完整的記載。這說明對于上元的算法存在著“算而不書”的習慣。形成這一習慣的原因主要來源于兩方面:第一,早期王朝的歷法推算與其正統性有關,因而往往被官方壟斷[43—45]。第二,一般而言,數學經典只記載算法,而不會記載具體的籌算操作;在天文歷算領域,則往往只記載數據,而沒有算法和籌算操作*筆者認為“算而不書”是中國古代天文歷算的計算文化,指在中國歷法計算中,往往只記載具體的數字和結果(如歷代正史“律歷志”),而不記錄算法及其籌算過程。實際上,《九章算術》等傳統數學著作中,雖然籌算過程也不被記載于內,但是有文字描述的算法。5世紀左右,《孫子筭經》最先記載了籌算運作的原則。今人對于籌算運作的了解恰恰來源于秦九韶《數書九章》的筭圖。。秦氏對于上元積年的推算,應是早年隨太史習得。因此,為了打破“算而不書”的習慣來記述大衍術,秦氏確實需要一個正當的理由*不過,秦九韶的策略很可能并沒有奏效。一方面,通過對比《宋史·律歷志》記載的成天歷(開禧歷之后,1271~1276年行用)與《數書九章》,可知該歷實際并未受到秦九韶的影響。另一方面,時人與后人對秦九韶有許多批評。時人劉克莊說秦九韶“蓋其人不孝、不義、不仁、不廉之事,具載丹書?!眳⒁娢墨I[46]。周密則說秦九韶“性喜奢好大,嗜進某身?!眳⒁娢墨I[42]。秦氏打破歷算“算而不書”的習慣可能是導致他們批評的部分原因。清代四庫館臣則說《數書九章》:“其中如大衍類‘蓍掛發微’欲以新術改《周易》,揲蓍之法殊乖古義?!眳⒁娢墨I[5],324頁。。

秦九韶在自序中談到《數書九章》的成書過程:在淳祐四年之前,他在工作中積累了許多算題,棄掉可惜,于是厘為九類,立術、補草用圖,著成該書*秦九韶云:“九韶愚陋,不閑于藝。早歲侍親中都,因得訪習于太史。又嘗從隱君子受數學。際時狄患,歷歲遙塞,不自意全于矢石間,嘗險罹憂。荏苒十禩,心槁氣落,信知夫物莫不有數也。乃肆意其間,旁諏方能,探索杳渺,粗若有所得焉。所謂通神明,順性命,固膚末于見。若其小者,竊嘗設為問答,以擬于用。積多而惜其棄。因取八十一題,厘為九類。立術具草,間以圖發之??只蚩蓚洳W多識君子之余觀?!眳⒁娢墨I[3],98頁。。由此可見,在成書之前,秦氏用籌算解決算題;成書時,秦補充了筭圖以說明算法。通過考察全書可知,筭圖往往用在秦氏于數學有重大創新之處:如大衍術、正負開方術、方程術等。換言之,筭圖成為秦氏表達其算法的最佳工具。其原因大概是:凡載于傳統算書的算法,其籌算過程已為當時研習數學者所熟悉,故用筭圖的必要性不大;然而,天文數術的算法和過程都不載于書,如果僅用文字記述其算法,則籌算過程仍然不易為人理解,因此需用筭圖。就此而言,用來計算上元積年的大衍術,正是典型的“算而不書”的天文算法,故筭圖成為表達大衍術的最佳工具。而算法撰寫模式的不同則反映出文本形成過程的差別。如此一來,秦九韶部分為了參與改歷而作《數書九章》,透過相關論述建立其公開揭示大衍術的正當理由,并最終用文字、籌碼、連線、筭圖等多種模式來撰寫大衍術,就順理成章了。

致 謝 本文的構思直接受到歐盟大型科研項目“古代世界的數學科學”的影響——“Mathematical Sciences in Ancient World”(簡稱“SAW”),歐洲學術委員會(European Research Council)的第七項目架構(European Union’s Seventh Framework Program(FP7/2007-2013)/ERC Grant agreement n.269804。2014年4月11日、2015年3月31日及10月11日,筆者分別在法國巴黎第七大學“SAW”兩次項目會議及第9屆全國數學史會議上報告了該論文。三次報告的聽眾提問對本文的完善至關重要。本文的修改得到了Karine Chemla(林力娜)、Agathe Keller、Matthieu Husson、韓琦、鄭誠等學界朋友的幫助,鄒大海先生仔細審閱了稿件,并對文章提出了至關重要的修改意見,在此一并深表謝意!

1 楊國選. 秦九韶生年及任西安尉考[J]. 中國科技史雜志, 2008, 29(4): 371~375.

2 秦九韶. 數書九章[M]. 北京中國國家圖書館藏明萬歷四十四年趙琦美鈔本.

3 秦九韶. 數書九章[M]∥四庫提要著錄叢書. 子部020. 北京: 北京出版社, 2011. 96~325.

4 秦九韶. 數書九章[M]∥郭書春. 中國科學技術典籍通匯·數學卷. 第1冊. 鄭州: 河南教育出版社, 1993. 439~724.

5 秦九韶. 數書九章[M]∥景印文淵閣四庫全書. 第797冊. 臺北: 臺灣商務印書館, 1985. 323~613.

6 Libbrecht U.ChineseMathematicsinThirteenthCentury:TheShu-shuchiu-changofCh’inChiu-shao[M]. New York: Dover Publications, 2005. 372.

7 錢寶琮. 秦九韶《數書九章》研究[C]∥錢寶琮. 宋元數學史論文集. 北京: 科學出版社, 1966. 60~103.

8 吳文俊. 秦九韶與《數書九章》[C]. 北京: 北京師范大學出版社, 1987.

9 Needham J, Wang L.ScienceandCivilisationinChina. Volume 3:MathematicsandtheSciencesoftheHeavensandtheEarth[M]. Cambridge: Cambridge University Press, 1959. 119~122.

10 錢寶琮. 中國數學史[M]. 北京: 科學出版社, 1964. 78~79.

11 李文林, 袁向東. 論漢代上元積年的計算[C]∥科技史文集. 第2輯. 上海: 上??茖W技術出版社, 1980. 70~76.

12 李繼閔. 從“演紀之法”與“大衍總數術”看秦九韶在算法上的成就[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 203~219.

13 李繼閔. 秦九韶關于上元積年推算的論述[C]∥吳文俊. 中國數學史論文集(四). 濟南: 上東教育出版社, 1996. 22~36.

14 曲安京. 中國歷法與數學[M]. 北京: 科學出版社, 2005. 24~91.

15 吳文俊. 從《數書九章》看中國傳統數學構造性與機械化特色[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 73~88.

16 郭書春. 尊重原始文獻, 避免以訛傳訛[J]. 自然科學史研究, 2007, 26(3): 438~448.

17 嚴敦杰. 宋金元歷法中的數學知識[C]∥錢寶琮. 宋元數學史論文集. 北京: 科學出版社, 1966. 210~224.

18 王翼勛. 秦九韶演紀積年法初探[J]. 自然科學史研究, 1997, 16(1): 10~20.

19 王翼勛. 開禧歷上元積年的計算[J]. 天文學報, 1997, 48(1): 94~105.

20 王榮彬, 徐澤林. 關于“大衍術”源流的算例分析[J]. 自然科學史研究, 1998, 17(1): 47~54.

21 朱一文. 秦九韶“歷家雖用, 用而不知”解[J]. 自然科學史研究, 2011, 30(2): 193~206.

22 李迪. 宋元時期數學形式的轉變[C]∥李迪. 中國科學技術史論文集. 呼和浩特: 內蒙古教育出版社, 1991. 219~233.

23 Chemla K. Positions et Changements en MathématiquesPartir des Texte Chinois des Dynasties Han a Song-yuan. Quelques remarques[J].Extrême-Orient,Extrême-Occident, 1996, 18: 115~147.

24 Chemla K. Variété des Mode D’utilisation desTudans les Textes Mathématique des Song et des Yuan[C]. (2002- 12- 07)[2017- 04- 05]. https: //halshs. archives-ouvertes. fr/halshs-00000103/document.

25 朱一文. 數: 筭與術——以九數之方程為例[J]. 漢學研究(臺北), 2010, 28(4): 73~105.

26 鄭誠, 朱一文. 《數書九章》流傳新考——趙琦美鈔本初探[J]. 自然科學史研究, 2010, 29(3): 319~328.

27 李迪. 《數書九章》流傳考[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 43~58.

28 永樂大典[M]. 第7冊. 北京: 中華書局, 1986.

29 白尚恕, 李兆華. 《數書九章》對《九章算術》的繼承與發展[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 103~123.

30 郭書春. 中國科學技術史·數學卷[M]. 北京: 科學出版社, 2010. 32~33.

31 郭書春. 秦九韶《數書九章序》注釋[J]. 湖州師范學院學報, 2004, 26(1): 35~44.

32 羅見今. 《數書九章》與《周易》[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 80~102.

33 李繼閔. “蓍掛發微”初探[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 124~137.

34 Ho P K. Ch’in Chiu-shao[M]∥Charles Coulston Gillispie.DictionaryofScientificBiography. Vol. 3. New York: Charles Scribner’s Sons, 1971. 249~256.

35 Martzloff J-C.AHistoryofChineseMathematics[M]. Berlin: Springer Verlag, 2006. 149~152.

36 嚴敦杰. 秦九韶年譜初稿[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 12~24.

37 李迪. 秦九韶傳略[C]∥吳文俊. 秦九韶與《數書九章》. 北京: 北京師范大學出版社, 1986. 25~42.

38 郭書春. 重新品評秦九韶[C]∥姜錫東, 李瑞華. 宋史研究論叢. 保定: 河北大學出版社, 2009. 191~236.

39 景定建康志官[M]∥景印文淵閣四庫全書. 第489冊. 臺北: 臺灣商務印書館, 1985. 208.

40 陳振孫. 直齋書錄解題[M]. 徐小蠻, 顧美華, 點校. 上海: 上海古籍出版社, 1987. 368~369.

41 脫脫. 宋史[M]. 北京: 中華書局, 1977. 1948.

42 周密. 癸辛雜識續集[M]∥景印文淵閣四庫全書. 第1040冊. 臺北: 臺灣商務印書館, 1985. 88.

43 江曉原. 天學真原[M]. 沈陽: 遼寧教育出版社, 1991.

44 黃一農. 社會天文學十講[M]. 上海: 復旦大學出版社, 2007.

45 Sivin N.GrantingtheSeasons:TheChineseAstronomicalReformof1280,withaStudyofItsManyDimensionsandaTranslationofItsRecords. New York: Springer. 2009.

46 劉克莊. 后村先生大全集. 卷81. [M]∥四部叢刊初編. 第1308冊. 上海: 商務印書館, 1922. 1a.

Qin Jiushao’s Writing of theDayanAlgorithm:An Analysis Based on Zhao Qimei’s Manuscript of theMathematicalBookinNineChapters(1616)

ZHU Yiwen

(DepartmentofPhilosophy&InstituteofLogicandCognition,SunYat-senUniversity,Guangzhou510275,China)

TheDayanalgorithm is one of the highlights of theMathematicalBookinNineChapters, completed by Qin Jiushao in 1247. Based on Zhao Qimei’s manuscript of this book (1616), which has not been fully studied before, this paper researches the process of Qin Jiushao’s writing of theDayanalgorithm. Firstly, an introduction is provided concerning the writing system derived from counting rods used in Zhao Qimei’s manuscript. Next, Qin Jiushao’s use of various writing modes are analyzed. Moreover, the connections betweenDayan,Fangchengmethods, and theBookofChangesestablished by Qin Jiushao are studied in order to reveal Qin’s aim in writing theDayanalgorithm. In summary, this writing process can be understood in the context of Qin’s aim in writing the book, and the tension between astronomy and mathematics at that time.

Qin Jiushao,DayanAlgorithm,MathematicalBookinNineChapters, Zhao Qimei, counting-diagrams, lines

2016- 08- 25;

2017- 03- 09

朱一文,1981年生,上海人,講師,研究方向為數學史。

國家社會科學基金青年項目“儒家經典注疏中天算文獻的整理與研究”(項目編號:16CZS012)

N092∶O112

A

1000- 0224(2017)02- 0244- 14

猜你喜歡
連線文獻算法
快樂連線
Hostile takeovers in China and Japan
快樂連線
快樂連線
Cultural and Religious Context of the Two Ancient Egyptian Stelae An Opening Paragraph
Travellng thg World Full—time for Rree
快樂連線
進位加法的兩種算法
The Application of the Situational Teaching Method in English Classroom Teaching at Vocational Colleges
The Role and Significant of Professional Ethics in Accounting and Auditing
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合