五曹算經

算經十書的一種

《五曹算經》是算經十書的一種,古代中國數學著作。一般認為由北周甄鸞所作,李淳風等為之作注。甄鸞通曆法,曾編《天和歷》,於566年頒行。“五曹”是指五類官員。其中"田曹"所收的問題是各種田畝面積的計算,“兵曹”是關於軍隊配置、給養運輸等的軍事數學問題,“集曹”是貿易交換問題,“倉曹”是糧食稅收和倉窖體積問題,“金曹”是絲織物交易等問題。全書共收67個問題,其數學內容沒有超出《九章算術》的內容。其南宋刻本,收藏於北京大學圖書館。

簡介


五曹算經
五曹算經
《五曹算經》 ,北周甄鸞所著。
唐代史料中多有“《五曹》、《孫子》等十部算經”一類說法,表明此書是“算經十書”中較受唐代官方重視的一部算書。作為唐宋官方數學教育的教材,《五曹算經》代有刊刻傳抄,受到歷朝很多數學家的重視,其歷史影響不可低估。另一方面,與十部算經中其他算書相比,《五曹算經》的編排和卷名更顯著地表明它服務於相應的社會經濟制度。因此,對《五曹算經》的研究有助於我們了解中國數學史及相關社會背景問題。然而,由於此書所載算題“解題方法都很淺近,數字計算不須要分數的概念”,而被視為“稍為有些落後的”,從數學史“內史”角度來看,學者們容易認為其研究價值不高。此外,該書分為“田曹”、“兵曹”、“集曹”、“倉曹”、“金曹”五卷,每卷標題后又都有李淳風所作題解,似乎很容易就能把各卷算題同當時行政事務對應起來。所以,以往的數學史論著往往僅注意它在演演算法上粗略的一面。對於算題的社會背景,論說也很簡略粗疏,還出現了一些誤解。

作者簡介


甄鸞,字叔遵(535-566),無極(今河北省無極縣)人,北周數學家,官司隸校尉、漢中太守。信佛教,擅長於精算,制天和曆法,於天和元年(566年)起被採用頒行。曾註釋不少古算書,著有《五經算術》等。另有周天和年曆一卷,《七曜算術》二卷。
所謂《算經十書》,除《綴術》及後邊的《緝古算經》外,都有他撰注的記載。他所撰的《五曹算經》、《五經算術》和《數術記遺》,今有傳本。《五曹算經》是一部為地方官員撰寫的應用數學書,內容淺近。《五經算術》對於《尚書》、《詩經》、《周易》、《周官》、《禮記》、《論語》等經籍中涉及數學、天文曆法的內容,作了註釋,在數學上並沒有創新。《數術記遺》題“漢徐岳撰,甄鸞注”。近人認為此書是甄鸞自撰自注而偽托徐岳的作品,也有的學者認為確為徐岳撰、甄鶯注。書中記載三種進位制度和14種記數法,其中“積算”即籌算,而“珠算”雖不是元、明之後的珠算盤,但開後者之先河,似無可疑。“計數”則介紹了一種別於古代傳統的測望方法。其餘演演算法則大都脫離實際。他對《周髀算經》的註釋,水平不高,而關於其他算經的註釋,都已失傳。

北朝制度


《五曹算經》
《五曹算經》
北魏初年推行“計口授田”制,實際上是一種民屯,其實施辦法可見於太平真君五年(444年)下令“有牛家與無牛家一人種田二十二畝,償以私鋤功七畝,如是為差;至與小、老無牛家種田七畝,小、老者償以鋤功二畝。皆以五口以下貧家為率。各列家別口數,所勸種頃畝,明立簿目”,太和元年(477年)又規定“一夫制治田四十畝,中男二十畝。”這種“授田”制度可以追溯到戰國時期的魏、秦等國。《九章算術》記載了多種形狀田地的面積計算方法,與春秋戰國時代統計土地數量、收取地租、大量開墾土地、土地買賣等活動需要測量多種形狀的土地面積有密切的關係,也與當時的授田制有一定的關係。由於當時數學有理論化的傾向,這就引導人們追求方法的普遍性並使獲得普遍性和精確性高的演演算法成為可能,而在當時適應變法求強的各種要求嚴格的法律和規章制度,也使尋求精確度高的演演算法成為必要因此《九章算術》有多種表述上具有普遍性、精度較高的田地面積計算,是不奇怪的。晉代也頒布了諸如“男子一人占田七十畝,女子三十畝”之類占田、課田等土地制度。但東漢至六朝時期,國家無力遏制豪族兼并土地,行政工作中計算土 地面積的需求就降低了,這一時期對土地的丈量更多體現在買賣田地的契約中,但在晉代以前,地契中對土地各項信息的記錄並不規範,各項信息往往記載非常模糊。故從實用角度而言,成書於晉代的《孫子算經》並無詳細記載田地面積的計算方法的迫切需要。同樣理由也適用於反映5世紀前期中原地區社會經濟狀況的《張丘建算經》,因為北魏前期授田制基本只推行於邊境及首都平城附近。但從北魏開始,國家控制土地的力量又增強了,由此就能更有力地推行朝廷頒布的土地條令。在這一背景下,有的算書中計算田地面積的題目應當會重新增多。不過“授田”制更多的是對前朝制度的繼承,將田地面積計算方法恢復到《九章算術》的數量或許就夠了,為什麼《五曹算經》中會增加這麼多描述土地形狀的術語和相應的演演算法呢?
這種情形應該與均田制有密切關係。均田制初行於北魏,後代累有採用,到唐中後期廢止。均田制以長期戰亂造成的大量無主田、荒地為前提,雖少有觸犯大官僚和士家大族的利益,但為廣大下層農民獲得合法土地提供了一定的保證,而且涉及的地域甚廣。北魏均田制的標誌性事件是太和九年(485年)頒布均田令,規定了農民在各種情況下受露田、桑田的數量,其中數字最大的是“諸男夫十五以上,受露田四十畝,婦人二十畝,奴婢依良。丁牛一頭受田三十畝,限四牛。所授之田率倍之,三易之田再倍之,以供耕休及還受之盈縮”,男夫受“桑田”二十畝。而在人多地少的“狹鄉”,如農民不願遷移,所受田地數量就會少些。由於是政府主持,地方籍帳中出現大量授田及還田的記錄,都對各塊土地的標的、“四至”及面積有詳細描述。算書中對田地面積計演演算法求多求全,與這種由國家對土地管理的增強帶來的規範化不無關係。另一方面,在均田制下,農民死後或年逾七十原則上要將所受露田歸還給政府,實際操作中往往採取更靈活的方法,如後代可以繼承前代所受桑田作為露田(“倍田”),從而使部分田地的還受在家庭內部解決等等。但無論還田採取何種形式,對於重新受田,官府依然要在戶籍中進行記錄。而既然對田地的各項信息都要詳細記載,那麼也應對田地面積進行丈量。這與此前少有涉及還田的土地制度相比,丈量田地面積不但在工作量上大大增加,而且成為地方行政部門的一項日常工作。
均田制對於土地面積的計算帶來的具體影響,可概括為兩方面。一方面,對土地面積的計算更頻繁了,最初可能只需把大塊土地劃分成小塊授予農民,太和九年令規定民戶所受田地“不得隔越他畔”,即每戶所受田地應連成一片,但由於這些田地帶有桑田、露田等不同性質,往往又被細分為若干段。經過農民還田官府再授田,或經過多次後代分割繼承前代所分桑田等過程,這些小塊土地可能會變得越來越細碎,而每塊土地的面積都要被丈量出來,因此不僅開始時計算量大,而且頻繁的計算會長期出現。另一方面,由於土地被劃分為細碎的小塊,由於地貌等原因,就容易出現各種形狀不規則的田地。
為應付均田制帶來的劃分、丈量田地面積的繁重計算量,需要編輯相應的算書,提供形狀足夠多的田地的計演演算法,以便地方官吏碰到某種形狀的田地,就能馬上依術計算。《五曹算經》“田曹”卷當以為適應這種需要而編輯的算書為原型。田曹共有19個問題涉及19塊田,其中面積超過1頃(100畝)的只有3塊(最大的2頃60畝奇100步)。其他的田地中,超過北魏實行均田法時一個適齡男性勞動力所受桑田20畝的只有兩塊,大於10畝小於20畝的田5塊,大於1畝小於10畝的田地6塊,低於1畝的田地3塊,其中最小的為63步。考慮到北魏時還有一些大戶、官員受田都以頃計,《五曹算經》中出現3塊超過一頃的田地是可以理解的。餘下的16塊田地,最大的也只有63畝奇80步,只比一對壯年夫婦所受露田之和60畝稍多一點,還不及一對有牛夫婦所應受的露田數;次大的只有23畝奇150步,也只略多於一壯年婦女所應受露田額20畝、而遠小於一個壯年男子所應受的露田額40畝。其他的14塊田都小於20畝。如果根據距離《五曹算經》編成年代更近的西魏大統十三年瓜州籍帳,則可看出民戶所受每段田地面積都小於20畝,大多數都在10畝以下,而“田曹”卷的19塊田中20畝以下面積的田地就有14塊,從題目涉及數量上看,這些算題和相應的方法適合於官吏進行學習並付諸應用。同時“田曹”卷收集了形狀種類儘可能多的田地計演演算法,可以滿足北魏授田與均田法需要關於各種形狀田地的面積演演算法之要求。範圍廣泛、頻繁進行的計算工作,也使得所需要的大量官吏無暇在精細演演算法上下功夫,而均田制在北朝還屬初創階段,由於戰亂又時廢時興,在工作中難免帶有一些粗放和原始的特點,因此《五曹算經》中有些演演算法不太精確,是可以理解的。
下面,我們將對這些精確度不高的演演算法進行具體討論。
1. 由半對角線求正方形田的面積。“田曹”卷第11題,由正方形田的中心到一個頂點的距離(對角線之半)求其面積,其方法為先求對角線,再求正方形的邊長,然後自乘。這個問題與《孫子算經》卷上第14題的題設、數字和解法都相同,只是文字稍異。在《九章算術》的“少廣”章,專門介紹了開方術,可由面積求出正方形的邊長。《孫子算經》卷上第19題和《張丘建算經》卷中的倒數第4題也是由方田(正方形)面積用開方法求其邊長。這種利用開方的方法原則上可以求出精確值。但《五曹算經》和《孫子》在求邊長時,沒有用到開方術,而是根據邊長與對角線之比為5:7的近似比率,用比例方法求出邊長。對於這類問題,古代可能想到的精確演演算法有兩種。一種是利用勾股定理,由對角線用開方法求出邊長,再由邊長自乘,得到面積。另一種是利用出入相補原理,可以得知對角線上的正方形面積(對角線的平方)等於兩個邊長上的正方形的面積(邊長的平方)之和,因此可以由對角線自乘,再除以2得到這塊田的面積。《五曹》和《孫子》所用演演算法求出的面積(一頃八十三畝奇一百八十步)比實際面積(一頃八十畝奇十八步)大三畝奇一百六十二步。不使用早幾百年就已出現,且時代稍早的算書、甚至同一部算書中仍在使用的精確演演算法,這種做法說明《五曹》和《孫子》記載的是一種更原始的演演算法,而其編者並沒有根據早已改進的演演算法來糾正它。我們上面所述的第二種精確演演算法,需要較多的抽象化和理論化方面的考慮,不容易想到。第一種精確演演算法需要用到開方,無疑比較複雜、難以掌握,遠不如書中所載近似演演算法那麼直截了當,易為一般基層官吏所掌握。
2.四不等田。土地方位通常用“四至”來描述,如果土地面積較大,對丈量精確度又要求不高,一些形狀與矩形相去不太遠的田地,就能將其近似地作為矩形來處理,這樣方田的計算方法通常就能夠滿足需求。但現實中肯定還存在大量與矩形相差很遠的田地,從早期出土文獻中能夠發現關於不規則四邊形的記錄。例如漢代買地券中有“南廣九十四步,西長六十八步,北廣六十五,東長七十九步,為田二十三畝奇百六十四步”,買地券中出現的土地未必真實存在,但從計算結果來看漢代恐怕還沒有推行後代計算四不等田面積的通用公式,因為用包括《五曹算經》在內的後世幾部算書中統一的演演算法去計算前述土地面積,並不能算出相同得數;不過,既然東漢已經有了對這種四不等田及其面積的描述,那麼《五曹》、《敦煌算書》“均田法”和《夏侯陽》都統一採用的演演算法(兩組對邊平均值的乘積),很可能在早於這些算書的時代就已經出現,只是未見於現存的幾部更早的算書而已。
3.在曲邊形田地的面積計算上,《五曹算經》較前代算書,幾乎沒有任何進展。即使這類土地本來難以有所變化,也應把一大原因歸結為在土地丈量的實際操作中,碰到曲邊形土地的機會要遠小於四邊形土地,而精確計算此類圖形面積的方法對於有些地方行政工作者來說,不僅有些高深,而且比較麻煩費事。故《五曹算經》將弧田、覆月田中的曲邊,都按直邊對待,而將這兩種圖形,都近似化為三角形來計算面積。這種做法無疑降低了計算的準確性,卻簡化了運算步驟,方便文化程度不高的下級官吏掌握。
4.對於六邊梯形,《五曹算經》有3種,在上列算書中是包含類別最多的,而這在早於它的算書中一種都沒有,晚於它的《敦煌算書》和《夏侯陽算經》只分別有2種和1種。在現實中,這種長條形狀的田是很多的。它們本可以通過分為兩個梯形分別計算其面積、然後求和來解決,但《五曹算經》卻採用了另一條思路:先算出三廣的平均值,再乘以從。這種演演算法說明造術者的思路是把這種圖形化為矩形來計算,這與三角形田和梯形田的求積法有相似性:對特殊的廣進行平均(對梯形是把兩廣求其平均,對三角形則視為一廣為零的梯形來處理,對六邊梯形則是三廣平均),可以代替各廣,他(們)還沒有認識到這種代替只適用於一些特殊形狀的圖形。《五曹》關於這些圖形的求積法的思想基礎,是面積由一系列線段積累而成的觀念。這種觀念是很自然的思想,在先秦文獻中已經存在,在《九章》及其劉徽注也用到了。當考慮不嚴密時,古人很容易想到用幾條特殊的廣的平均值作為諸廣的代表。因此,儘管《五曹》中六邊梯形的求積法不見於現存早於它的其他算書,但它們未必都由《五曹》那些問題的作者首先提出。《五曹》提出或採用這些精度不高的六邊梯形的面積演演算法,說明它適應現實急務的需要:畢竟這種演演算法比分為兩個梯形來計算,要簡便得多,也便於大量基層官吏學習和掌握。
總之,《五曹算經》中出現的形狀種類繁多的田地面積計演演算法,是北朝田地制度下行政部門需要頻繁劃分、丈量土地的形勢對相應的計算工具的必然要求,而其中採用一些精度不高的演演算法,則不僅與均田制剛剛創立、還不夠完善有關,而且也由於這些演演算法比更精確的演演算法簡單便捷、更易於基層官吏掌握,同時又可以滿足大範圍的頻繁測量與計算有關。唐代田曹的職能“掌園宅、口分、永業及蔭田”,需要測算各種田地面積,正與《五曹算經》“田曹”中的問題所討論的對象非常吻合,由於北周與唐代制度有密切聯繫,而均田制從北魏到唐中期都有施行,在服務於行政管理的算書中,將計算田地面積的題目列於“田曹”名目之下,是非常恰當的。