- 發布時間:2025-01-26 17:30:04 瀏覽次數:2527
- 關於北京大學藏秦簡《算書乙種》的綜合研究
-
(中國科學院自然科學史研究所;中國科學院大學)
摘 要 新近公布的北京大學藏秦簡牘中有三種前所未知的數學著作,《算書乙種》是其中之一。本文首次對它進行系統的研究,分析其體例與編纂、知識類型與數學方法,以及相關的社會背景,並修正了以前學術界的若干不當認識。此書爲撮編之作,結構上有一定層次,體現出編排的意圖但考慮不周。作爲實用算法式數學文獻,此書不屬於從“九數”發展至《九章算術》的經典系統,但它的內容仍爲劉徽關於《九章算術》源於其先秦祖本的記載提供了新的直接證據。同時,此書也爲研究秦國和秦代社會經濟提供了難得的原始文獻。
關鍵字 北京大學藏秦簡牘;《算書乙種》;《九章算術》;中國數學史;計量制度;秦漢史
1 引言
2009年,北京大學入藏了一批由香港馮燊均國學基金會捐贈的秦簡牘(以下簡稱爲“北大秦簡”),內容涉及秦代的政治、社會經濟、文學、數學、醫學、曆法、方術、民間信仰等諸多領域。經過多方面專家共同努力,這批珍貴材料的照片、釋文和注釋於不久以前全部發表。[1] 這批簡牘中,竹簡部分共有761枚簡,約300枚爲雙面書寫,與數學相關的竹簡占比最大,包括卷三、卷七、卷八和卷四中的一部分;另有一枚單獨的九九木牘,共400餘數學枚簡牘。其中有3種算書,原無標題,整理者定名爲《算書甲種》、《算書乙種》和《算書丙種》。[2, 3] 目前學術界對北大秦簡算書的研究,一是對簡文有全面的釋讀和注釋,二是對若干數學史問題有相對零散的討論[4-7]。整理者在三部算書的釋文、注釋前各有一篇《說明》,總括其大致情況,但相當簡單。對北大秦簡三種算書的全面探討需要很大的篇幅,本文只擬系統考察其中的《算書乙種》。
整理者在《算書乙種》的釋文、注釋之前的《說明》中說到:
其性質屬於“算題彙編”,內容比較駁雜,編次也無一定之規。每道算題皆有“題名”,自右向左橫向書寫於前幾枚簡的頭端(第一道編繩之上),這是其不同於《算書甲種》和《丙種》的特色。算題內容包括體積計算、錫金錢布的換算比率、各種糧食和草料堆積的體積估算以及“望遠”等,不少內容爲前所未見。[8]
這裏初步描述了《算書乙種》的大致內容和特色,但過於簡略,亦不甚準確。本文擬在上述成果的基礎上,較爲系統、深入地分析此書的體例與編纂特點、知識類型與數學方法,並進而探討它對數學史研究的意義。
2 《算書乙種》的體例與編纂特點
《算書乙種》從簡三〇五正開始書寫,再從簡三〇五背開始書寫至簡二六九背。簡長22.6~23.1釐米、寬0.5~0.7釐米,三道編繩,簡文字體爲秦隸,保存狀況較爲完好。在整理者公布的照片中,簡三〇五正接連着簡三〇六正至簡三〇九正共4枚空白簡[9],其背面抄有《祓除》的最後幾行,夾在簡三一背和簡三二背之間([9],532頁),而在簡三一正和簡三二正上則連續書寫着《算書甲種》的《魯久次問數于陳起》篇的最後幾句話([9],504頁)。整理者發現它們比卷四“其他竹簡略寬,其編繩較粗,且編繩位置與前後竹簡不一致”,再結合簡牘室內發掘時的原始照片,確定它們不是與其他竹簡一起編入卷四簡冊中的,“而是先單獨編在一起,然後利用‘餘繩’與簡冊相連綴(或是直接捲入簡冊之中),其形式類似今天書籍中的‘活頁’或‘夾條’”,進而推測卷四至少有一部分是事先根據擬抄文獻的篇幅規劃預留空間,而《祓除》篇就到快抄完了的時候纔發現預留空間不足,因而採用這種類似“夾條”的方式。([8],741-743頁) 這是有道理的。不過,整理者將這4枚與《算書乙種》簡三〇五正排在一起[9],似不甚妥當,容易讓讀者以爲它們是此書漏抄了文本的竹簡。
2.1 《算書乙種》中的符號
《算書乙種》簡文中出現的符號有墨點“·”、勾識符號“∟”和重文號“=”。墨點和勾識符號都有分隔功能,但後者分隔出的單元往往小於或等於前者。墨點在簡牘中還曾作爲一段文字開始的標記,但《算書乙種》沒有這種情況。另外,墨點和勾識符號的使用並不是必須的,有些可以用的地方並沒有使用。比如“石率……”、“鈞率……”、“斤率……”、“兩率……”、“銖率……”之間在第2條中用墨點隔開,而在第4條中則用勾識符號隔開。又如包括這兩條在內的題名爲“率”的4條之術文部分最後都以“此其術也”作爲結束語,但在此語之前都有墨點而不是勾識符號。復如第3條在前一個“問”字之前有勾識符號,而在第3條後一個“問”字及第2、4、5、7條“問”字之前則沒有任何符號。在《算書乙種》中重文號只用來表示所重的文字,沒有用作數字合文的標識。而在有些簡牘材料中,則在合文數字記號旁用重文號標記。簡二六九背的第二道編繩下方有自右上向左下傾斜的墨線一道,或爲表示《算書乙種》至此結束的標誌。
2.2 《算書乙種》的題名
《算書乙種》全書有5個保存完好的題名,釋文依次爲“率”2个、“度”、“禾粟積”和“望遠”,都在第一道編繩之上。在“率”之前還有一個釋讀爲“袤”的題名,從照片(見圖1)上看並不清楚,只有殘留痕迹,其下部可能也有編繩痕迹,其上部與同一枚簡中的“袤”字(圖2、3)明顯不同,反而與該簡中“芻”字(圖4)的上部接近。此字輪廓與北京大學藏秦簡中《算書甲種》和嶽麓書院藏秦簡《數》中“倉”(圖6-8)[2]接近。不過,“倉”字沒有出現在此條中,結合上下文,我們把這個題名暫時視爲“芻”(以下提到時暫稱“芻(?)”)。


兩個題名“率”各領一個條文,每條都是先列一段術文,然後給出一個例題。在這兩條之間還有2條,每條也都是先列一段術文,然後給出一個例題。後一條首簡編繩之上殘去一半,保存了右半部,上面存有一字的右半部(圖9簡二九六背),與簡三〇五背天頭的“𧗿”
編繩之上殘去(圖9簡三〇〇背),看不出有什麽字。根據上下文,可以推論也是題名“率”字。在最後一個題名“率”的條目和題名“度”的條目之間有兩個條目,前一條保存了一枚簡(圖10簡二八七背),其第一道編繩以上殘去,此編繩以下首字亦殘去絕大部分,無法辨識;第二個字殘去右上一小部分,能够辨識爲“積”。此簡前面應有一枚簡,上含題名。後一條含兩枚簡(圖10簡二八六背、二八五背),從彩色照片能看出前一枚簡(簡二八六背)編繩之上有墨迹,但已磨滅,完全不能辨識,應該是題名,估計是“渠”或別的什麽字。

題名“度”的條目由簡二八四背、簡二八三背組成,下一條的題名“禾粟積”的首字“禾”在簡二八三背的編繩之上,後兩字“粟”、“積”則分別在簡二八二背、簡二八一背的編繩以上(圖11)。這說明兩點,一是簡二八三背之編繩以上的“禾”與編繩之下的文字不是從上至下順着寫下來的;二是《算書乙種》是一個抄本,不是編寫者的手稿。出現這種情况的原因可能是,先寫好了“度”條和“禾粟積”條(至少是其前兩枚簡)編繩以下的內容之後,纔補寫題名,在寫完題名“度”之後不小心在左邊挨着的簡的天頭處開始寫題名“禾粟積”,於是首字“禾”寫到了“度”條第二枚簡的天頭處。題名“望遠”兩字則分別寫在此條前兩枚簡的天頭上(圖12簡二七一背、二七〇背),沒有錯位。“禾粟積”和“望遠”都是同一題名的幾個字分別寫在不同簡上,一簡只寫一字,這應該不是疏忽,而是當時書寫體例的一種,當然這與其他算書一般都把每個題名的幾個字都同寫在首簡上屬於不同的情形。這些反映出當時題名書寫格式的多樣化。

在題名“禾粟積”和“望遠”之間很可能還有一個題名。從簡二八二背至簡二七七背是講粟穀、稻穀、米、麥、菽、荅、麻、稻禾、禾一堆各一石的標準,這些都是加工後供人食用的。從簡二七六背至簡二七三背講芻、稿、茭茅、葦等供牲口食用或作爲燃料、紡織纖維原料等物品各一石的標準,之後的簡二七二背首字不識,簡文也是講某物一石的標準,應該也是針對這類物品。仔細察看竹簡彩色照片(圖12),在簡二七六背、二七五背第一道編繩之上還存有文字殘存的墨迹,在簡二七四背第一道編繩之上的墨迹也能看到一點,但不太明顯。而如果看紅外照片,則這三枚簡的第一道編繩之上的字墨迹都是相當明顯的(圖13、14、15),應該各有一字,猜測是“芻”、“稾(稿)”、“積”,但無法確定。這“芻稿積(?)”也是一個題名,統領簡二七六背至簡二七二背5枚簡的內容。

所以,此書現存內容對應的題名應爲11個,每一個各領一個條目。爲便於指稱,下面把各條題名羅列如次:
第1條:芻(?);第2-5條:率;第6條:未知;第7條:渠(?);第8條:度;第9條:禾粟積;第10條:芻稿積(?);第11條:望遠。
文字保存得很清楚的各條題名都取自其主體內容中的關鍵詞,或是對主體內容的概括。如:“率”、“度”和“望遠”是主體內容的關鍵詞;“禾”可以特指粟,也可以指更寬泛的糧食作物,“粟”可以特指小米這種作物,也可以泛指各種穀物的籽實甚至其加工製品,題名“禾粟積”是對所領內容的概括。推想其他題名也應該屬於這兩種情况。如第1條的題名“芻(?)”可能取自“積芻甍術”的“芻”;涉及渠的那條的題名可能就取自該條所討論的對象而作“渠”;而“望遠”條之前的那條應該像“禾粟積”一樣,采用對主體內容進行概括的題名,可能是“芻稿積”。
2.3 《算書乙種》的編排特徵
《算書乙種》的最大構成單元是條目,共存11個。每個條目都有題名,題名字數一至三個不等,一個字的最多。一字題名位於該條首簡的天頭,兩字、三字題名保存清楚的只有各一條,前者位於該條前兩枚的天頭,各寫一字,後者位於上一條“度”的末簡的天頭和此條前兩枚簡的天頭,估計是抄寫時錯誤地整體向右移了一個字的空間。
《算書乙種》並不能用“算題彙編”來概括,它的構成可以概括爲五種類型:I型:單獨的算法,包括第1條;II型:術文(算法)+例題,包括第2-5條;III型:算題及其算法,包括第7條、第11條;IV型:計量單位的數量標準,包括第9-10條;V型:計量方式兼算法,包括第8條。第6條因爲有佚失簡而難以確定屬於哪種情形,應該涉及由長方體的體積和一個底面的面積求其高,有可能屬於III型,也有可能只是一個算法而屬於I型。
I型整體是單獨的術文,沒有例題。大概是作爲備查或供記憶參考之用的。
II型中,每一條的術文和例題不是連着書寫的。例題總是從一枚空白簡開始書寫:在第2-4條中,術文寫完如果餘有空間就空着;在第5條中,術文的最末一字“也”寫在了下編繩之下的地脚處,這應該是不願爲了術文的這個字浪費一枚整簡,又要保證之後的例題從一枚空白簡開始書寫而造成的。可見將術文和例題隔開書寫,是特意爲之。這反映出術文和例題雖有緊密聯繫,但也具有相對獨立性。另外,這4條的術文和例題的格式、表達方式都很接近。比如4條的術文開頭都具有“以A買B”的形式,結尾都是“·此其術也”;它們的例題都是以“今A若干買B若干”的句式開頭。其他內容也存在相似性。這4條都以“率”爲題名編排在一起,前兩條是“以金買”“錫”、“布”,後兩條是“以錢買”“錫”、“布”,順序合理。可見,這類內容具有一種合理的下級結構,說明其編寫者存在有意設計的意圖。但如後面所分析的,這部分算題的答案並不能用所提供的算法解決,所以算題和算法其實有着不同的來源。這反映了這部分內容在編作者問題上具有複雜性。
III型的兩條,其實還有區別。第7條是很簡單的,主要是要知道這種渠在規格上的特點:截面梯形的長底等於短底與高之和。但此條末尾說“爲堤亦如此”,說明這種規格及其算法表示的是一種類型,具有一定普遍性。第11條的正文首先說“望遠術曰”,給出設定和測量得到的數據,然後根據這些數據算出結果,而沒有采用問和答的形式。可以看出,此條的實質不在於怎麽根據已知條件來求出未知答案,而在於如何設計一種方法獲得什麽樣的有用數據,以便可以計算遠處物體的距離。後面會談到,這種方法具有普遍性。本類的兩條,都體現了對方法普遍性的重視。
IV型只是羅列石作爲農作物産品計量單位時的體積標準,沒有例題,但肯定在一些有關的數學問題中會用到。這應該是供記憶和查閱用的。第9條“禾粟積”先列粟穀、稻穀的標準,然後列出它們的米的標準,再列出麥、菽、荅、麻的標準,順序是合理的。但下面先列稻禾一石的標準再列禾(粟禾)的標準,則與前面的順序顛倒過來了,不太合理。第10條除最後一項因首字殘損而所指不明外,前4項的順序沒有明顯不合理之處。總之,這一類中每條之內不同部分之間的順序是大致合理的。另外,在這兩條中,給人食用的東西放前面,顯示它們之間順序的合理性。值得注意的是,這兩條的每一條都由幾個性質相同的項目並列而成,但都沒有顯示出綜合性的功能。
V型只有題名爲“度”的第8條。此條開頭以“度方術”三字標記,之後是長方體體積算法。然後是寸與單位長度寸、尺、尺的10n(n=2, 3, 4, 5)倍相乘及相應的結果,實際是針對長方形面積的度量。這條也有層次結構,但兩部分在思路和形式上很不一樣,沒有形成有機的整體。雖然兩部分放在度方術下也未嘗不可,但它們之間只是並列關係。
第2-5條的相對順序、第9-10條的相對順序都是合理的,第11條講測望,放到最後也是合理的。第1、6兩條是體積算法或其逆向應用,它們本應該離得近,第8條是方形的體積、面積的計量和計算,應該在體積算法之前,却在它們之後,而且還被只涉及渠、堤規格的第7條隔開,這些都不合理。所以條目之間的順序是合理與不合理之處都不少,只能說編者有所考慮但沒有刻意做通盤的考慮。
總體來看,《算書乙種》全書由11個條目組成,各有題名。這些條目可分爲五個類型,含有算題的只有II、III兩種類型,只有一半稍多一點。這些條目中有一大部分具有下級知識單元,這使得全書顯示出一定的層次結構。但條目之間完全是並列關係,同類的條目之間哪怕結構非常相似也沒有合幷爲一類,更未用篇題統領。條目之間的相對順序有的合理,有的不合理。因此,此書有一定系統性,但沒有形成有機的整體。
3 《算書乙種》的知識類型與數學方法
《算書乙種》包含的知識可分爲六部分:(1)體積算法及其應用;(2)體積、面積計量方式;(3)立體規格問題;(4)一類特殊的單價求法及其應用;(5)石作爲農作物産品計量單位的數量標準;(6)旁要問題。下面依次進行介紹和分析。
3.1 體積算法及其應用
《算書乙種》中這類內容所占篇幅較少,只有第1、6條及第8條“度”的前半部分。第1條爲:
芻(?) 積芻薶(甍)述(術):半上袤,益下袤,以乘下后(厚),以高乘之,三成一。([8],833頁)
“薶”與“甍”相通,形似屋脊。“積芻薶”即將草堆成形似屋脊的立體。《九章算術•商功》有芻甍。兩書討論的都是底面爲長方形、上有一條棱與底面一組對邊平行的楔形體。《算書乙種》給出這種立體的體積算法“積芻薶術”,相當於體積公式:
V =(上袤÷2+下袤)×下后(厚)×高÷3。
在《九章算術•商功》中,與“后(厚)”对应的是“广”,书中给出刍甍的体积算法相当於:
V =(下袤×2+上袤)×广×高÷6。
兩個公式是等價的,只要將《算書乙種》中算法的分子、分母放大一倍,再對調上袤項與下袤項的順序,便得到《九章算術》中的算法。過去的出土文獻中沒有與芻甍一模一樣的立體,鄒大海曾用間接的方法證明先秦和秦代有芻甍及其算法([7],300-316頁;[10]),現在《算書乙種》提供了直接的證據。
第6條涉及體積算法,如前所述它應該包括2枚或3枚簡,上有題名,但只存有最後的簡二八七背,其簡文爲:
□積尺爲實,實如法而一尺。不盈尺者十之,如法一寸。不盈寸者命分。([8],841頁)
“積尺”一般是指用立方尺計量的體積,推測此條講的是:有一個長方體,或者把一個其他形狀的立體化爲一個長方體後,已經得到或已知它的體積(即積尺)和一個面的面積,把它們分別作爲實(被除數)和法(除數),相除後得到與該已知面垂直的棱之長度。這是體積算法的逆算法。
第8條的前半部分是從計量方式的角度介紹長方體體積算法的,詳下。
3.2 體積、面積的計量方式
《算書乙種》題名“度”的第8條說:
度 度方術:以廣乘袤,有(又)以高乘之,即成積尺。·寸乘寸,寸也;寸乘尺,十分尺一也;寸乘十尺,尺也;寸乘百尺,十尺也;寸乘千尺,百尺也;寸乘萬尺,千尺也;寸乘十萬尺,萬尺也。([8],842頁)
從簡文書體來看,從本條開始明顯爲另一位抄手的筆迹,這是《算書乙種》爲抄本的一個證據。“度方術”說明此條是關於計量方形的方法。簡文中的圓點,把內容隔爲立體和平面兩部分。前一部分將廣、袤、高三者相乘得到長方體的體積,用“積尺”來描述,說明其單位爲(立方)尺,實際上應該是轉化爲一個正四棱柱,其底面爲邊長一尺的正方形,而以高的尺數爲體積的度量值。後一部分針對面積的計量:一條邊爲一寸、另一條邊分別爲一寸、一尺、十尺、百尺、千尺、萬尺、十萬尺的長方形,其面積要化爲一條邊爲一尺的長方形,以其另一條邊的長度作爲作面積的計量值,其單位采用尺,在這裏等於平方尺。這裏,面積和體積的計量有相似性:(1)都是化爲方形,體積是轉化爲一個正四棱柱,其底面正方形的邊長爲一尺;而面積則是化爲長方形,其一邊長度亦爲一尺。(2)都以長度的數據作爲計量值。
3.3 立體規格問題
第7條討論一種截面爲滿足特定條件的梯形的四棱柱:
渠下廣丈,深丈,問:上廣幾可(何)?曰:上廣二丈。凡救(求)上廣,并下廣與深,即上廣殹(也)。爲隄(堤)亦如此。([8],841頁)
一般來說,渠是截面爲梯形的棱柱體,此條的渠則有更特殊的規格:其上底(上廣)的長度等於下底(下廣)與高(深)度的和。此條在默認這種規格的前提下由下底和深求上底。後面又說“爲堤亦如此”,則應是由上底與高相加得到下底的長度。這種規格的立體在軍事上用得較多,《九章算術》“商功”章中也有類似的題目,其第5題、第6題分別是計算“溝”和“塹”的容積,雖然兩者的數據與本題有所不同,但共性都是一條較短的廣加上高(或深)等於另一條較長的廣。“商功”章還有“穿渠”、“城”、“垣”、“堤”等不符合這種規格,北大秦簡《算書丙種》算題中的這類立體也不是這種規格的。
本條含有題設、提問、答案和術文,是一個典型的算題。
3.4 一類特殊的單價求法及其應用
《算書乙種》中有一部分內容是關於一類特殊的單價求法及其應用的,記於簡三〇五背至簡二八八背,凡18枚簡,占全書近一半的篇幅。這部分內容又由四條組成,每條都有題名“率”字統領,它們依次涉及“以金買錫”、“以金買布”、“以錢買錫”和“以錢買布”,可以作爲指稱它們的標題。它們具有相同的體例和數學結構,是書中體系化程度最高的部分。下面舉“以金買錫”條爲例加以討論:
𧗿(率)[3] 以金買錫,欲𧗿(率)之,曰:盡毀以爲朱(銖),而錫爲法。問:石𧗿(率)以金一爲四萬【六千八十。· 鈞𧗿(率)】以金一爲萬一千五百廿。·斤𧗿(率)以金一爲三百八十四。·兩𧗿(率)以金一爲廿四。·朱(銖)𧗿(率)即因之。不盈法者命分。·此其述(術)也。(簡三〇五背、簡三〇四背、簡三〇三背)([8],834頁)
今金一兩一朱(銖),買錫十斤一兩一朱(銖),欲石𧗿(率),問:得幾可(何)?曰:其錫九斤七兩十一朱(銖)者,石得金十二兩十朱(銖),其九兩十四朱(銖)者,石得金十二兩十一朱(銖)。 (簡三〇二背、簡三〇一背)([8],836頁)
“率”有多種涵義:(1)名詞,數量標準;兩個或幾個數量之間的比例關係,亦指處在這一關係中的數量;(2)動詞,通過計算找出不同數量之間的標準比例。在《算書乙種》中,題名中的“率”本取其動作之義,但已經名詞化。([8],834頁) “以金買錫”條分爲兩部分,前一部分含3枚簡,是術文,即算法。後一部分含2枚簡,構成一個算題,被視爲前者的應用。術文和算題中的“率”均爲動詞。術文中“欲率之”意爲想要計算購買單位錫所需的金,其後“石率”、“鈞率”、“斤率”、“兩率”和“銖率”分別是“欲以石率之”、“欲以鈞率之”、“欲以斤率之”、“欲以兩率之”和“欲以銖率之”的省略。算題中的“欲石率”是“欲以石率之”的省略。
這一條處理的問題是:由一定數量的金購買一定數量的錫,要求出錫的單價。術文分兩部分,第一部分爲針對5個單位(石、鈞、斤、兩、銖)都通用的部分,文字有省略,補充完整後應爲“盡毀[金、錫]以爲朱,而[以金爲實、]錫爲法”,即先把金和錫的數量都化爲以銖爲單位的數量(“毀”是分割、細分的意思),然後用金的銖數作爲被除數、錫的銖數作爲除數,言下之意是兩數相除。相除的結果是每銖錫的單價爲多少銖金。那麽,按石、鈞、斤、兩計量的單價則還要再分別乘以它們所含的銖數。
第二部分列出計算每個單價時對應的常數,在提到最後一個時說“銖率即因之”,實際也表明前面提到的各常數都是用來乘前面的結果的。秦制以銖、兩、斤、鈞、石爲衡制單位,24銖爲一兩,16兩爲一斤,30斤爲一鈞,4鈞爲一石。由此可得,一斤等於24銖乘以16,爲384銖;一鈞等於384銖乘以30,爲11520銖;一石等於11520銖乘以4,爲46080銖。這些數據正是《算書乙種》“以金買錫”和“以錢買錫”兩條中術文部分的常數。
算題部分是假設1兩1銖金買得10斤1兩1銖錫,要求每石錫的單價。那麽按前面的算法,把金的數量化爲25銖作爲“實”(被除數),把錫的數量化爲3865銖作爲“法”(除數),相除後再乘以石對應的常數46080。實際計算時古人可能會先乘後除。結果應爲每石錫的單價爲298
銖金,再化爲更大的單位並將分數化簡則爲12兩10
銖。這是一個固定的值,是個帶分數,但此題作者給出的答案却是兩組數據:用每石錫12兩10銖金的單價買得9斤7兩11銖錫,用每石錫12兩11銖金的單價買得9兩14銖錫。這些結果顯然不都是只用前面的術文就能算出的。可見術文和例題有一部分是對應不上的。但是,古人的兩個單價只相差1,且較低的單價等於前面術文算出的帶分數之整數部分,所以算法與算題還是有關係的。算題的算法雖不由《算書乙種》提供,却見於《九章算術》的“粟米”章,並被冠有專名“其率術”。該術原文如下:
其率術曰:各置所買石、鈞、斤、兩爲法,以所率乘錢數爲實,實如法而一。不滿法者,反以實減法,法賤實貴。其求石、鈞、斤、兩,以積銖各除法、實,各得其積數,各自爲銖。[11]
其中“各置……實如法而一”與上述《算書乙種》術文求整數的部分對應。“不滿法者”至末尾的處理方法不同於《算書乙種》的“不盈法命分”,而是對應於《算書乙種》未記録的實際解法:除不盡時,要從“法”(除數)中減去“實”(被除數,實際是原來的被除數除以除數以後的餘數),於是以“法”(除數,實際是從除數中減去餘數之後得到的差)作爲按較低的單價所買的錫的數量,以“實”(被除數,實際是被除數除以除數以後得到的餘數)作爲按較高的單價所買的錫的數量。然後再利用石、鈞、斤、兩所含的銖數(“積珠”)去除上面所買錫的兩種數量,將它們化爲“A石B鈞C斤D兩E銖”的形式。其計算步驟和原理如下:
先做除法:1152000÷3865=298……230,這說明,按每石錫298銖金的單價購買全部的錫時,金還剩餘230銖。那麽將所買錫中的230銖的單價提高1銖,即以299銖金/石的單價購買這230銖錫時,正好讓題設中的金數沒有剩餘。此時,餘下的錫就都是按298銖金/石的單位購買的,故按此單價所買錫的銖數爲:3865-230=3635。最後把這些數據儘量換成較大的單位:
每石錫價:299銖,買錫數量:230銖。因爲299÷24=12……11,所以299銖=12兩11銖;因爲230÷24=9……14,所以230銖=9兩14銖。故算得按石計的錫單價12兩11銖金所購買的錫是9兩14銖。
每石錫價:298銖,買錫數量:3635銖。因爲299÷24=12……10,所以298銖=12兩10銖;因爲3635÷384=9……179,179÷24=7……11,所以3635銖=9斤7兩11銖。故算得按石計的錫單價12兩10銖金所購買的錫是9斤7兩11銖。
這就是《算書乙種》“以金買錫”條中算題部分給出的答案。([8],836-837頁)
另外三條“以金買布”、“以錢買錫”、“以錢買布”也屬於同樣的情形,可以做類似的解讀。
這4條從形式上看,都是術文統率例題的格式。但從實際上看,術文並不足以解決後面的算題,而算題部分又缺少算法。
求單價問題見於以前出土的算書,如《算數書》的“金價”問題,但在這些算書中沒有發現按除法求出準確的單價爲分數時,古人采用相差1的兩個單價,並按兩個單價分別計算出所買物品的數量的“其率術”問題。如前所述,以上四條的算法都不能算出其後算題的答案,這說明算法部分和算題部分的關係不是很密切,兩部分應出自不同的作者,這也是此書爲撮編之作的反映。這四條的算題都可按《九章算術》的“其率術”算出,說明“其率術”及相關算題有很早的淵源,這種方法的産生早於《算書乙種》的編成,當在戰國時期甚至有可能更早。
3.5 石作爲農作物産品計量單位的數量標準
簡二八三背至二七二背共12枚簡記録計量農作物産品時單位石的體積標準,但沒有給出相應的算題。這部分可分爲兩類,第一類是由題名“禾粟積”統領、針對主要供人食用的糧食類産品,第二類是針對供牲口食用及作爲燃料、紡織纖維原料等之用的植物莖葉産品,統領的題名不能確認,有可能是“芻稿積”。
第一類的內容爲:
粟二尺七寸一石。 (簡二八二背)
稻粟三尺三寸一石。 (簡二八一背)
米一尺六寸五分寸一而一石。 (簡二八〇背)
麥、菽、荅、麻故積二尺四寸十分寸三而一石,新積二尺七寸一石。 (簡二七九背)
稻禾故積九尺一石,新積十尺一石。 (簡二七八背)
禾故積十尺一石,新積十二尺一石。 (簡二七七背)([8],833-834頁)
以上簡文對各種糧食類物品的計量單位石制定了體積標準,都采用“A尺B寸”或“A尺”的形式,相當於一個底面正方形邊長爲一尺的正四棱柱,其高爲A尺B寸或A尺,也就是說其體積等於A
立方尺或A立方尺。商鞅方升的銘文說“積十六尊(寸)五分尊(寸)壹爲升”,意思是以16
立方寸即16.2立方寸爲一升,這正是一般情况下升的標準。而一般情况下從升到斗、從斗到石都采用十進,因此,1斗爲162立方寸,1石爲1620立方寸。簡二八〇背中米的石標準“一尺六寸五分寸一”表示底面邊長等於1尺、高爲1尺6
寸的正四棱柱的體積,等於1620立方寸,與上述一般情况下石的標準相同。可見北大秦簡的升沿用了商鞅變法所用的容量標準,而米的石采用的正是一般情况下石的標準。
簡二八二背給出粟谷一石的標準“二尺七寸”,即2.7立方尺,也就是2700立方寸,按162立方寸爲一斗換算則爲16
斗。這與睡虎地秦簡《倉律》和張家山漢簡《算數書·程禾》禾(粟)一石的標準相同,它是一般情况下的石(也是米的石)的三分之五倍。睡虎地秦簡《倉律》和張家山漢簡《算數書·程禾》以20斗爲稻穀一石的標準,嶽麓書院秦簡《數》說“稻粟三尺二寸五分寸二而一石”,也就是稻穀3240立方寸爲一石,這按162立方寸爲一斗換算也正好是20斗。簡二八一背以“三尺三寸”即3300立方寸爲稻穀(“稻粟”)一石的標準,這比睡虎地秦簡、《算數書》和《數》中石的標準都高了約1.85%,可見這種標準實際執行中也可以根據情况稍做調整。
簡二七九背至二七六背都提到“故積”和“新積”,前者應該是針對晾曬乾後的物品而言,後者則是針對新收割而未晾曬乾的物品。[4] 爲什麽以是否晾曬乾而不是以存放一段時間和新收穫來區分“故積”與“新積”? 理由有二:一是所謂“存放一段時間”,是可長可短的,標準不明確;二是如果都是晾(曬)乾了,那麽新積應該比故積的品質更好,那麽新積一石的體積應該更小纔對,可是簡文數據針對的不論是麥、菽、荅、麻,還是禾、稻禾,抑或是芻、稿,都是故積一石的體積小於新積一石的體積。所以故積和新積的區別在於是否晾(曬)乾了。另外,相同體積的新積總是重於故積,而故積一石的體積却總是小於新積一石,這證明秦簡《倉律》和漢簡《算數書·程禾》中“禾黍一石”與“稻禾一石”的“石”不是重量單位。
簡二七九背給出麥、菽、荅、麻故積一石的標準爲“二尺四寸十分寸三”即2430立方寸,按162立方寸爲一斗換算正好是15斗。它們新積一石的標準與粟的一石標準相同。前者正好是睡虎地秦簡《倉律》和張家山漢簡《算數書·程禾》麥、菽、荅、麻的標準。《倉律》和《程禾》未提到故積、新積,可知默認按故積的標準。簡二七八背給出“稻禾”故積和新積一石的標準分別爲9(立方)尺和10(立方)尺,簡二七七背給出“禾”故積和新積一石的標準分別爲10(立方)尺和12(立方)尺,這兩組數據都只精確到立方尺,精度比上面的四類都低了三個數量級,可知是一種粗算。“稻禾”和“禾”分別是收割下來的連穗帶莖葉的稻類禾和粟類禾。這裏兩種物品的石,可能是根據打下稻穀一石和粟谷一石倒推出來的數據,由於帶有莖葉,其中籽實所占的比例很難精確控制,所以只是大致做了粗算,以立方尺而不是立方寸作爲計量單位。
第二類的內容爲:
芻故積十八尺一石,新積廿八尺一石。 (簡二七六背)
稾故積廿二尺一石,新積卅一尺一石。 (簡二七五背)
茭茅積卅六尺一石。 (簡二七四背)
葦積卅一尺一石。 (簡二七三背)
□積六尺一石。 (簡二七二背)([8],845頁)
以上五種物品一石的標準也用長度單位來表示,采用“A尺”的數據形式,實際仍相當於以一尺爲邊長的正方形爲底面、以A尺爲高的正四棱柱的體積。前四種都是作物的莖葉,最後一種由於首字殘缺而不知爲何物,推想也是某種作物的莖葉。這類東西堆放在一起時比較蓬鬆、空隙的可變範圍較大,一石的標準若采用立方寸爲單位則沒有意義,所以就采用了立方尺爲單位。
這兩條都沒有相應的例題,而只是羅列出針對多種物品的單位石的體積標準。這應該是供查閱或作爲記憶資料之用的。
鄒大海曾提出,作體積、容積單位時,石通常情况下是十斗,但在秦至漢初政府倉儲部門的公務活動中,曾采用過一種針對不同物品而采用不同體積作爲一石的特殊計量制度——“多值石制”[12-14]。這兩條也反映了這一情况,而且物品種類更多,石的體積標準也更多。
3.6 旁要問題
《算書乙種》最後一條題名“望遠”,取自正文開頭“望遠術”的前兩字。此條由三枚簡組成,簡文如下:
望遠術曰:尌(樹)四表,方廿五步,直城陬。即從後表羨朢城陬,去前表二步。即以二步者除廿五步,令二而一,成十二步半步。乃直(置)廿五步,令相乘也,即到城步數也。凡三百一十二步半步。 (簡二七一背、簡二七〇背、簡二六九背)([8],846頁)
這是要測量遠處一座城有多遠,其方法是:如圖,樹立四個表杆,它們形成邊長等於25步的正方形(ABCD),並使其中一條邊上的兩個表(A、D)與城的一個角(E)在一條直綫上。然後從後面的另一個表(C)處斜着望城的那個角(E),視綫(CE)與前兩表的連綫(AB)
相交,交點(F)到觀察點(C)前面的那個表(B)的距離(BF)爲2步。然後以BF的長度2步去除正方形的邊長25步得到12
步,再用它去乘正方形的邊長25步,得到人到城的
距離(DE)爲312
步。

這個問題與《九章算術·勾股》中的第21題相類似。該題是:
今有木去人不知遠近。立四表,相去各一丈,令左兩表與所望參相直。從後右表望之,入前右表三寸。問:木去人幾何?
荅曰:三十三丈三尺三寸少半寸。
術曰:令一丈自乘爲實,以三寸爲法,實如法而一。([11],392-393页)
兩個問題都是測算遠處目標的距離,方法都是樹立四個表,形成一個正方形,讓一條邊與目標在一條直綫上,再從後面的另一個表處看目標,測得視綫與正方形前一邊的交點與觀測點前面的表之距離,然後利用這一數據與正方形的邊長求得答案。兩個問題有一一對應關係:木 ─ 城的角(“城陬”)、1丈 ─ 25步、3寸 ─ 2步,可見它們具有相同的數學結構,其方法也只是先乘後除與先除後乘的區別,本質上則是完全相同的。
兩個問題的算法基於相似的直角三角形對應邊成比例的原理,這一原理雖然在傳世文獻中首先見於劉徽在注《九章算術》“勾股”章的“勾股容圓”問題時所謂勾股“相與之勢不失本率”的陳述[15],它由基於出入相補原理的容橫容直原理導出,但這些實際在先秦早已用到。這兩個問題的算法很簡單,原理也不複雜,似乎是很平淡的成就,其實不然。試想一下,看到遠處一個物體,什麽數據都不知道,又不能過去,却要知道它距離有多遠,這並不是很容易想到辦法的。古人通過在幾個特定位置安放一組表,從某個特定位置觀察目標,直接測量近處特定的長度數據,再用它們算出遠處目標的數據。這種方法雖然簡單,却非常巧妙,反映了古人高超的算法設計思想。“望遠”條以“望遠術”開頭,說明作者的主旨是在闡述一種測量方法,其注重方法闡述的意識比《九章算術》的算題更濃。兩個問題共用的這種方法不直接測量目標物本身的數據,而是在其旁邊獲取數據再通過計算來求出所需的數據,這符合數學門類名“旁要”的含義[16]。《算書乙種》直接說明這個門類的數學知識不晚於秦代,而很可能存在於先秦。《算書乙種》和《九章算術》中的這兩個問題在方法上的共性和在問題上的差異,說明在更早時代已産生了這種方法。只有這樣它纔能流傳開來,應用於不同的場合和問題之中。
4 從《算書乙種》看《九章算術》算題的淵源
劉徽注釋《九章算術》時所寫的序言說:
周公制禮而有九數,九數之流,則九章是矣。往者暴秦焚書,經術散壞。自時厥後,漢北平侯張蒼、大司農中丞耿壽昌皆以善算命世。蒼等因舊文之遺殘,各稱删補。故校其目則與古或異,而所論者多近語也。([11],3頁)
劉徽認爲西周初年周公制定禮樂制度時就有了“九數”,其流變成爲《九章算術》。秦始皇焚書導致《九章算術》散壞。入漢以後張蒼(公元前252年以前-公元前152年)、耿壽昌(約公元前100-約公元前40年)先後收集此書的殘文,進行整理和删補,形成了漢代的《九章算術》,這成爲他注釋的對象。此書在篇目上與先秦版本稍有不同,而在表達上采用許多漢代的語言。學界最新的相關研究證明了對張蒼、耿壽昌編纂《九章算術》的記載([7],34-51頁;[17];[18]),現傳本《九章算術》中的主要方法在先秦已經存在,只有少部分爲張蒼、耿壽昌所增補。[7,15-24]《算書乙種》進一步加强了這一認識。
第1條直接證明了《九章算術》芻甍的算法存在於先秦和秦代。“其率術”問題在《北京大學藏秦簡牘》出版以前公布的出土算書中未出現過[5],《算書乙種》第2-5條證明這類問題在先秦和秦代就已經存在,《九章算術》的這類問題來源於先秦和秦代,或至少有早於漢代的原型。由於《算書乙種》沒有提供“其率術”的算法,其相關算題却要用到《九章算術》的“其率術”,所以《九章算術》的“其率術”早於《算書乙種》,其相關算題(全部或一部分)亦可能早於《算書乙種》。《九章算術》“商功”章有一個由長方體倉庫的廣、袤和所容粟的數量,求粟的高度問題([11],177頁),是求長方體體積的逆問題,這類問題及其算法是很容易想到的,在先秦和秦代存在是可以想見的,《算書乙種》第6條則直接證明這類問題在當時的存在性。《九章算術》的間接測遠問題在過去的簡牘算書中沒有見過,《算書乙種》的“望遠”條證明這類問題在先秦和秦代確實存在,《九章算術》“勾股”章的“立四表望木”問題本身或其原型來源於先秦或秦代,而其方法的産生不晚於戰國時代而可能更早,這種方法的設計巧思說明“旁要”這個門類至晚在戰國時代是存在的。
《九章算術》“商功”章有“程粟一斛積二尺七寸;其米一斛積一尺六寸五分寸之一;其菽、荅、麻、麥一斛皆二尺四寸十分寸之三”,只要把“斛”換成“石”,則其粟、米與《算書乙種》的標準完全相同,菽、荅、麻、麥的標準與《算書乙種》的故積標準相同,這支持《九章算術》這部分內容來源於國時秦國或秦代,與秦政府對公事活動糧食中的管理規定有關的結論([7],213-214頁;[12-14])。
《算書乙種》中有些知識沒有出現在《九章算術》中。第9-10條中除上述三個標準以外的其他物品一石的標準、第2-5條的術文部分都沒有在《九章算術》中出現,這有可能是始皇焚書和秦漢之際戰亂導致《九章算術》散壞的結果,亦可能是張蒼、耿壽昌整理時進行取捨、精簡的結果。第8條“度”的後一部分、第7條與《九章算術》的內容差別較大,更可能是《九章算術》在先秦和秦代的祖本原來就沒有這方面的內容。
5 結語
《算書乙種》不是手稿而是抄本,現存11個條目,除第6條缺少一或兩枚簡外,其他各條的正文內容基本保存完整,此書前面可能有佚失簡但應很少。《算書乙種》的內容有不同來源,故可將它定位爲撮編之書。此書各個條目均有標題,只是有些標題有殘損。此書多數條目具有下層知識單元,呈示出一定的層次感。書內有可以歸類的同型條目却沒有歸類,所有條目呈並列關係,其順序只有部分合理性。同時,有的算法與算題對應得不好。這些說明此書雖非精心編纂的著作,却並非雜亂無章,而是有編排上的有意安排,但考慮得不太周到。
《算書乙種》體量不大,但內容類別相當豐富,對於認識秦漢數學及相關社會背景具有重要價值,尤其是爲劉徽關於《九章算術》源於其先秦祖本的記載提供了新證。如其率術問題、“望遠”問題,首次直接證明《九章算術》中的這類內容有先秦(或至遲爲秦代)的來源;第9、10條關於石的數量標準,進一步證明《九章算術》的粟米類內容有先秦(或至遲爲秦代)的來源,擴充了對石之多值制的認識範圍,同時可以解決以前關於農作物堆積的某些懸而未決的問題。第7條關於渠規格的問題不見於以前的秦漢史料。這種規格常見於唐至清代的兵書,說明後世的兵書其實存在更早的淵源。同時,第12條的“望遠術”用來解決不便就近測量的問題,在軍事上有重要的價值。結合北大秦簡中有《公子從軍》一篇,可以推測《算書乙種》的取材多少考慮了軍事上的需要。秦講求耕戰,有的官吏對與軍事相關的數學問題考慮得多一些是不奇怪的。
《算書乙種》不討論抽象的數學概念及其間的關係。它服務於實際,算法是其主體,屬於實用算法式數學文獻。鄒大海曾把戰國至漢代的實用算法式數學文獻分爲經典和非經典兩個系統,前者以“九數”到《九章》爲綫索;後者受經典系統直接或間接的影響,數量巨大,多種多樣,有的偏專業,有的偏應用,有的兼而有之。([7],421-422頁) 《算書乙種》不具有經典系統的架構,其數學內容的現實背景涉及政府對農作物的管理(第1條、第9-10條)、對公共設施的修建(第7條)、商業交換(第2-5條)、軍事(第7、12條)等多個方面,屬於非經典系統中偏應用的類型,但仍爲我們認識經典系統的存在和發展提供了依據。
附記:本文原刊於《自然科學史硏究》,2024年第43卷第2期,第129-145頁。
本文的撰寫曾得到北京大學歷史系韓巍教授的指教,謹致謝忱。文章基金項目:國家社科基金冷門絕學研究專項“《北京大學藏秦簡牘》數學文獻研究”(項目編號:23VJXG012)。中國科學院戰略研究專項:中國科學院自然科學史研究所“十四•五”重大項目“中國科技傳統及其現實意義研究”。
參 考 文 獻
[1] 北京大學出土文獻與古代文明研究所, 編. 北京大學藏秦簡牘(全五册)[M]. 上海:上海古籍出版社, 2023.
[2] 北京大學出土文獻研究所. 北京大學藏秦簡牘概述[J]. 文物, 2012(6): 65-73.
[3] 北京大學出土文獻與古代文明研究所, 編. 北京大學藏秦簡牘(壹)[M]. 上海: 上海古籍出版社, 2023.
[4] 韓巍. 北大藏秦簡《魯久次問數于陳起》初讀[J]. 北京大學學報(哲學社會科學版), 2015(2): 29-36.
[5] 韓巍, 鄒大海. 北大秦簡《魯久次問數于陳起》今譯、圖版和專家筆談[J]. 自然科學史研究, 2015(2): 232-266.
[6] 韓巍. 北大秦簡《算書》土地面積類算題初識[C]//武漢大學簡帛研究中心, 主編. 簡帛: 第8輯. 上海:上海古籍出版社, 2013: 29-42.
[7] 鄒大海. 中國數學在奠基時期的形態、創造與發展——以若干典型案例爲中心的研究[M]. 廣州: 廣東人民出版社, 2022: 80-81, 137, 268-287.
[8] 北京大學出土文獻與古代文明研究所, 編. 北京大學藏秦簡牘(肆)[M]. 上海: 上海古籍出版社, 2023:831.
[9] 北京大學出土文獻與古代文明研究所, 編. 北京大學藏秦簡牘(三)[M]. 上海: 上海古籍出版社, 2023:518.
[10] 鄒大海. 《數》、《筭數書》和《九章算術》中一類楔形體研究——兼論中國早期求積算法的某些特點[J]. 漢學研究(臺灣), 2014(3): 69-94.
[11] 郭書春, 匯校. 九章筭術新校[M]. 合肥: 中國科學技術大學出版社, 2014:77.
[12] 鄒大海. 關於《算數書》、秦律和上古糧米計量單位的幾個問題[J]. 內蒙古師範大學學報(自然科學漢文版), 2009(5): 508-515.
[13] 鄒大海. 從出土文獻看秦漢計量單位石的變遷[C]//Ogawa T. eds. RIMS Kôkyûroku Bessatsu B50: Study of the History of Mathematics August 27~30, 2012. Research Institute for Mathematical Sciences, Kyoto University, 2014: 137-156.
[14] 鄒大海. 關於秦漢計量單位石、桶的幾個問題[J]. 中國史研究, 2019(1): 57-76.
[15] 郭書春. 古代世界數學泰斗劉徽[M]. 濟南: 山東科學技術出版社, 1992: 174-175.
[16] 鄒大海. 中國數學的興起與先秦數學[M]. 石家莊: 河北科學技術出版社, 2001: 157-161.
[17] 鄒大海. 秦漢量制與《九章算術》成書年代新探[J]. 自然科學史研究, 2017(3): 293-315.
[18] 鄒大海. 耿壽昌,一位不該低估的中國古代科學家[M]//鄒大海, 郭金海, 田淼, 主編. 探史求新——慶祝郭書春先生八十華誕文集. 哈爾濱: 哈爾濱工業大學出版社, 2023:3-25.
[19] 鄒大海. 出土《算數書》初探[J]. 自然科學史研究, 2001(3):193-205.
[20] 鄒大海. 睡虎地秦簡與先秦數學[J]. 考古, 2005(6): 57-65.
[21] 鄒大海. 從《算數書》盈不足問題看上古時代的盈不足方法[J]. 自然科學史研究, 2007(3): 312-323.
[22] 鄒大海. 從出土簡牘文獻看中國早期的正負數概念[J]. 考古學報, 2010(4): 481-504.
[23] 鄒大海. 從嶽麓書院藏秦簡《數》看上古時代盈不足問題的發展[J]. 內蒙古師範大學學報(自然科學漢文版), 2019(6): 504-515.
[24] 鄒大海. 中國上古時代數學門類均輸新探[J]. 自然科學史研究, 2020(4): 395-424.[1] 2023年5月27日北京大學和上海世紀出版集團聯合舉行了《北京大學藏秦簡牘[全五冊]》[1]的新書發布暨學術座談會。
[2] 字形取自朱漢民、陳松長主編《嶽麓書院藏秦簡(貳)》,上海:上海辭書出版社,2011年。
[3] 《算書乙種》中各“率”字按字形都應隸定爲“𧗿”,但釋文直接作“率”。根據其凡例第九條,“對原簡使用的假借字、異體字,用圓括號()注出本字或通行字”[3],則釋文應該作“𧗿”,再括注“率”,故本文引用原文時將“率”改作“𧗿(率)”,以便與凡例和同一段文本中對類似情形的其他文字的處理方式保持一致。
[4] 對於“故積”和“新積”,《算書乙種》中針對簡二七九背的注釋以存放過一段時間和新收穫做區別,針對簡二七八背至簡二七五背的注釋則以是否晾乾爲區分。都應以是否晾曬乾爲準。
[5] 此後譚競男、蔡丹發表的論文《睡虎地漢簡〈算術〉“率”類算題》(刊於《文物》2023年第12期第75-81頁),表明睡虎地漢簡《算書》亦有這類問題,而且內容更爲豐富。如此則“其率術”類問題及其算法從先秦至西漢中後期一直存在流傳的證據得以形成鏈條。
(編者按:本文收稿時間為2025年1月23日20:09。)