原创 邹大海 文史哲杂志 山东
摘 要
《九章算术》是中国传统数学最重要的经典。通过考察《九章算术》章名的含义与由来,分析编纂者组织内容的内在逻辑,可以证明此书在每章的选材方面总体上保持了很好的一致性,各章之间界限清楚,全书编排顺序合理,这表明它形成了一个完整的数学体系。《九章算术》以算法为主体,讲求算法的普适性,算题则服务于算法,起问题模型和示例作用。《九章算术》在公元前1世纪中叶编定以后,各种注释本、阐发其要义和模仿其体例的著作屡见不鲜,形成了一个绵延近两千年的《九章算术》传统,左右着中国传统数学的发展。
作 者 | 邹大海,中国科学院自然科学史研究所研究员
原 载 |《文史哲》2025年第4期,第20-34页
原 题 | 中国古代数学中的《九章算术》体系与传统
《九章算术》是中国古代数学最重要的经典,在中国乃至东亚数学史上影响深远。它是否形成了体系,如果它形成了体系,这一体系在历史上有怎样的影响,都是学术史上重要的理论问题。
钱宝琮主编的《中国数学史》第二编讨论了秦统一至唐玄宗天宝十四年(755)间数学的发展,认为此一时期“主要是以《九章算术》为中心的中国古代数学体系的形成”,并未涉及《九章算术》本身的体系。李继闵在默认它有体系、有理论的前提下讨论这一体系的特征与理论特色,其《东方数学典籍〈九章算术〉及其刘徽注研究》有一小节就题为“《九章算术》——形数结合的算法体系”,还说“《九章算术》的全部理论是以寻求各种应用问题的普遍解法为中心课题”。他说“从《九章算术》经文与刘徽注的研究可见,秦汉时期形成的算法体系取得了很高的理论成就,首先表现在概念的科学性方面”,接着他概述刘徽对概念的定义。因为刘徽(公元3世纪,生卒年不详)是魏晋时期人,他于公元263年为《九章算术》作注,又因秦汉算书没有存在定义的迹象,所以李继闵用刘徽的定义来说明秦汉时期的“算法体系取得了很高的理论成就”,就没有道理。李继闵还提到《九章算术》分类用的章名“方田、粟米、衰分、商功、均输清楚地反映出它们在社会生活中被实际应用的范围”,“《九章算术》以算法实际应用的范围来分为方田、粟米等学科”,这是以偏概全了。实际上此书的多数章名不是来自应用而是来自算法名(本文后面有讨论)。王渝生《中华文化通志·算学志》有一小节名“《九章算术》的体系”,说它“是中国数学理论体系的典型代表”,其“基本结构是:以题解为中心,在题解中给出算法,根据算法组建理论体系”,认为此书的分类依据“似乎”有“按问题的应用属性分类”和“按算法分类”两项,但“这是个表面现象。《九章算术》分类原则仅一个,即算法。《九章算术》的体系也仅一个,即算法体系”。他认为:“整个《九章算术》包括了四大算法系统和两大求积公式系统。”前者是“分数算法、一般比率算法、组合比率算法、开方算法”,后者是“面积公式系统和体积公式系统”。这两者的“有机结合构成了《九章算术》完整的理论体系”。他也默认《九章算术》有体系有理论。王渝生前面说《九章算术》有应用属性和算法两种分类方式,后面又说算法为依据才是唯一的分类原则,有些自相矛盾,毕竟分类与逻辑关联两者不是一回事。王渝生所说“四大算法系统和两大求积公式系统”的“有机结合构成了《九章算术》完整的理论体系”是现代的重构,与李继闵一样都主要基于刘徽注,而《九章算术》原书并没有按这种体系组织成文本。
郭书春认为《九章算术》有理论,但有“严重缺点”,主要是“对数学理论研究不够重视”。他对“体系”一词,喜欢与“理论”连用为“理论体系”,特别强调一个理论体系的“概念和判断”在逻辑上要是“严整的、连贯的”,其“概念和判断之间的逻辑结构,应该大体上是演绎的”。他认为《九章算术》只是“大体有其理论结构的框架”,但它“不甚合理”,存在没有概念定义、数学推导和证明,分类和章名的依据既有算法,又有应用,没有保持一致性,有的内容与章名“极不协调”等问题。他判断《九章算术》“本身并没有形成一个数学理论体系”,“使中国古代数学形成一个完整的理论体系的任务是由刘徽完成的”。他把《九章算术》与刘徽注区分开来是正确的,避免了李、王之说存在的时代错位问题。但他把“体系”的含义限定在一个比较窄的范围内,尤其是强调一个体系要有演绎性,则有其片面性,且与“体系”的一般含义不符。这是潜意识里受西方公理化体系的思想影响所致,不利于描述古希腊之外的文明中数学知识的特征。同时,由于对《九章算术》的知识构成和分类存在一些误解,导致他在《九章算术》的体系问题上存在误判。
本文将先介绍“体系”一词的一般用法,以此为基础,通过辨析《九章算术》的形成、章名的含义、内容的归类与编排,证明《九章算术》很好地保持了内在的一致性,形成了自身的体系,并概括这一体系中数学知识的特征。然后,通过探讨《九章算术》在后世的影响,证明中国古代数学史上形成了一个《九章算术》传统。
一、“体系”的含义及如何用它来描述古代数学知识的组织
体系是描述和评价一类知识发展状况的一个概念。《现代汉语词典》说:体系是“若干有关事物或某些意识互相联系而构成的一个整体。”举例有“防御体系”“工业体系”“思想体系”“保持体系的完整性”等。这个定义符合人们的一般认知,它对一个整体内部各个部分之间逻辑关联的强度不做很高的要求,具有较大的包容度和一般性。我们在这个意义下使用“体系”一词,只要是相互关联的知识被有条理地组织成为一个整体,我们就说它们形成了一个体系。体系内部的各组成部分之间的逻辑关联有强有弱,我们就在承认它们构成一个体系的前提下,评估这个体系的强弱。
数学知识积累到一定程度以后,需要把它们或其中一部分按一定的目的、以一定的方式组织到一起,形成一个整体。如果这样的整体之各部分达到一定程度的关联性,具有一定的功能,各部分内部的单元服务于共同的目的,或者符合共同的标准,那么这样的整体就可以说是一个体系。
一类知识由不同的部分组成,它们之间存在的联系,有不同的呈现方式。一种是把这些部分明确放置在一定的篇章结构之中,一种是用语言表示它们之间的逻辑关联。这两种方式本来可以统一起来,但由于知识组织者未必以建立逻辑关联为目的,而且他们对这种关联的认识也存在差异,故其组织方法可以具有多种多样的形式。了解古代数学知识的体系,基本上靠古代流传至今的数学文献。有些文献内容单一,体量很小,不足以构成一部著作,比如出土简牍中有很多单独的九九表,它们属于数学文献,却不是数学著作,自然不能说构成了一个数学体系。有的数学著作有比较丰富的内容和一定目的,但没有合理的分类,组织得不太有条理,或者其中的内容不完整,不能实现其目的和功能,我们就不说它形成了一个数学体系。比如北京大学藏秦简《算书乙种》,虽然其中有两部分(第2-5条、第9-10条)分别将同类的内容放在一起,但没有形成篇章结构,书中题名“度”的第8条的位置与前面一条弄颠倒了,而题名“禾粟积”的第9条与题名可能是“刍稿积”的第10条罗列了一系列不同种类粮草一石的十多个体积标准,却没有用上,全书显得没有一个通盘的考虑,所以我们就说它没有形成一个体系。
二、从“九数”到《九章算术》
中国古代数学的体系本来应该在很早的时代就有了。《周礼·地官司徒》说:“保氏掌谏王恶而养国子以道:乃教之六艺,一曰五礼,二曰六乐,三曰五射,四曰五驭,五曰六书,六曰九数。”似此,数学在西周时期已成为贵族子弟教育的一个科目,即所谓六艺之一的“九数”。可以认为,当时的中国数学已形成一个包含九个方面的学科,应已经形成了一个体系,这是一个教学体系。东汉郑众的《周礼注》注释“九数”时说:“九数,方田、粟米、差分、少广、商功、均输、方程、赢不足、旁要。今有重差、夕桀、勾股也。”这里前面列出了“九数”的九个科目,接着又提到三个郑众时代或他之前不远的时代存在的三个数学科目。对比郑众所列的“九数”名目与《九章算术》的九个章名,可知除最后的一项(旁要和勾股)外,其他的要么完全相同(方田、粟米、少广、商功、均输、方程),要么是同义词(差分和衰分,赢不足和盈不足),余下的区别只有第七项和第八项的顺序对调。《九章算术》的具体内容包含了大量秦汉时期的印记,比方“粟米”章开头作为全书常数表的“粟米之法”来源于秦律中关于政府仓储部门对粮食、食品管理的定量规定,并行用于全书,“均输”章有基于汉初的《徭律》中关于传驿系统中重车(满载负荷的车)、空车每日行走里程的定量标准而设计的算法和例题,“方田”章和“少广”章关于一亩步数、一顷亩数的规定,“衰分”章以秦汉的爵位设计的算题,全书采用秦汉计量单位等。所以,郑众所列“九数”和《九章算术》两者都不可能是西周“九数”之旧,只能认为西周的数学体系已失传,但有些要素融入郑众所列“九数”的内容和《九章算术》里了。
没有文献直接表明郑众所列“九数”的具体内容是什么,但这九个科目与《九章算术》的高度重叠性,表明它们的内容很相似。三国时魏国刘徽为《九章算术》作注,在景元四年(263)的序言中他阐述了“九数”与《九章算术》的关系:
周公制礼而有九数,九数之流,则《九章》是矣。往者暴秦焚书,经术散坏。自时厥后,汉北平侯张苍、大司农中丞耿寿昌皆以善算命世。苍等因旧文之遗残,各称删补。故校其目则与古或异,而所论者多近语也。
他认为西周的“九数”在先秦已发展成为一部著作《九章》(“九章”之名可能是原来就有的,也可能是用后来的名称来指称以前的著作)。经历秦始皇焚书事件之后,此书散坏了。西汉早期的张苍(稍早于前252-前152)和中后期的耿寿昌(约前100-约前40)收集此书的遗文,进行整理删补,形成了刘徽作注时所用的《九章算术》。从出土材料看,《九章算术》的绝大部分内容在战国时代就已出现,所以这个体系应该是在战国时代就已经大致具备了的。根据对《九章算术》成书的考察,可知它虽然经过一个漫长的历史过程,但最后于公元前1世纪中叶成书于耿寿昌之手。至此,一个保存至今、影响近两千年的传统数学体系已经形成,奠定了中国古代数学传统的基础。
三、《九章算术》的体系
《九章算术》分为九章,依次是方田、粟米、衰分、少广、商功、均输、盈不足、方程和勾股。下面对章名的定名依据、知识的归类和编排做一简要的分析,以阐明此书的体系,并讨论这一体系中算法的特征、算法与算题之间的关系。
(一)方田
“方田”章在列出两个算题之后,给出了它们的共同算法“方田术”,即长方形田的面积算法。“方田术”是此章题名的直接来源,这反映出它实际被作为计算各种形状田地面积的基础,蕴含了要把其他形状化归为长方形来求面积的思想。处理田地面积的“方田”章之所以作为最前的第一章,跟古代中国是农业社会有关,因为农业最重要的资源是田地。公元6世纪甄鸾(生卒年不详)《五曹算经》把田曹列为第一卷,标题“田曹”下李淳风等注释说“生人之本,上用天道,下分地利,故田曹为首”,也明确地讲明了关于田地面积计算的分支排在最前面的社会历史原因,这实际反映了农业在中国古代社会的极端重要性。
在《九章算术》“方田”章中,编者也把分数四则运算的方法列入,兼顾了将基础知识放在前面的通例。此章处理田地面积的计算,虽然其定名的依据以方法名为主,但也兼顾了应用场合。此章在全书中排在最前,基础的分数四则运算法又纳入这最前的一章,既考虑到田地在当时社会中的极端重要性,也反映了基础知识靠前的必要性,同时这也与此章的术文只用到整数和分数的四则运算有关。以上多方面的因素都反映出“方田”章排在第一在当时是很自然的。
(二)粟米
“粟米”章首先给出了一张包含20种粮食及其加工制品的换算标准表,称为“粟米之法”。然后是正比例算法,称为今有术,是最基本的比例算法。此章主要处理粮食及其制品的换算,其核心算法是今有术。此章的题名“粟米”来自“粟米之法”的开头两字,用来代表粮食及其加工制品,实际也反映了此章所处理的问题的现实背景。粮食是田地所产,又是生存和生活最基本的必需品。今有术在“粟米”章起着关键的作用,它是最基本的比例算法,是以后各章算法的基础。所以“粟米”章排在第二是合理的。
今有术之后有三类算题。第一类是“粟米之法”中两种物品之间的换算,利用此表中所列的常数或其约简后的数据,直接套用今有术解决。
第二类是已知若干钱买若干物,求每物的单价,本来直接用除法求解即可,这比用今有术简单,但《九章算术》专门设置了经率术求解。经率术有两种类型。前一类型有2个问题,其中所买物只用一个单位(枚或个)计量。这2个问题共用一条术文:“经率术曰:以所买率为法,所出钱数为实,实如法得一钱。”只用除法,相比于今有术少了乘法步骤。后一类型有4个问题,题设中所买物的数量含有3个单位(斛、斗、升,或匹、丈、尺,或石、钧、斤),要求按其中一个最大或次大的单位计算的单价。这4个问题共用一个算法:“经率术曰:以所求率乘钱数为实,以所买率为法,实如法得一。”在这类问题中,已知的所买物数量用3个单位计量,因为古人要化为只用最小单位(升、尺或斤)计量的数量以便于计算,那么要求的单价所针对的最大或次大的单位也要化为用最小单位计量的数量,这时就与今有术中的数量对应起来:单价所针对的最大或次大单位按最小单位计量的数量、单价中的钱数分别为所求率(亦是经率术中的“所求率”)、所求数,已知的所买物按最小单位计量的数量、已知的钱数分别为所有率(经率术中的“所买率”)、所有数(经率术中的“钱数”),所以这个经率术就是今有术的直接应用,其计算步骤既有乘法又有除法。两个经率术和相应的问题有明显的不同,《九章算术》把它们视为同一类,是因为编者认为前一类型也有“所求率”,只是这个“所求率”为1,用1乘钱数相当于不乘。可见,前一类型被视为后一类型的退化形式。
第三类是其率术和反其率术问题,它们在形式上很特殊。但不难发现,这类算题其实是第二类的扩展。其率术问题属于求单价,只是因为单价为分数,而作者想要整数答案,于是把问题设置为求相差1的两个单价;反其率术问题则是求一钱能买多少物品,答案也是相差1的两个数据。可见,第三类问题是从第二类延伸而来的。
(三)衰分
“衰分”章有衰分术和返衰术,前者就是比例分配的方法,后者则是按已给比率的倒数进行比例分配的方法。这是建立在今有术之上而比之更复杂的基本比例算法。此章也有一些不属于衰分的问题。“衰分”章紧接在以今有术为基本算法的“粟米”章之后位列第三,这是很有道理的。
(四)少广
“少广”章首先是少广术,它用来解决由长方形田面积一亩和一边长度
步来求另一边的问题,这是求面积问题的逆问题。少广术是此章题名“少广”的来源。少广术之后列有11个此类问题,并各有具体的解法,反映了算法的层次性。之后列有5个开平方算题,再列有它们的共同解法,称为开方术。然后列有两个由圆面积求周长的问题,再给出它们的共同解法,称为开圆术。此术先描述如何得到一个被开平方数,然后只说“开方除之,即得周”,不再描述如何开方。接下来列出4个由正方体的体积求边长的算题,再给出它们的共同解法开立方术。之后给出两个由球(“立圆”)的体积求直径的算题,再给出它们的共同解法,称为开立圆术。此术先描述如何得到一个被开立方数,然后只说“开立方除之,即立圆径”,不再描述如何开立方。这4类开方问题及其算法不仅具有合理的顺序,而且连同算法的详略一起呈现出一种编排上的层次感。
开方是由面积或体积,以及边与边之间的相等关系求边长。这可以视为少广术的延伸。少广术问题中已知的边长数据很特别,涉及一组数字计算,显得很复杂。在北京大学藏秦简《算书甲种》《算书丙种》和睡虎地汉简《算术》等算书中,少广问题虽然也是面积问题的逆问题,但主要强调所包含数字计算方法的多样性,故将少广术类问题放在很靠前的位置。《九章算术》则很不一样,除了少广术问题外,还包括开平方、开立方法等复杂的算法及其应用。因为前面三章已有理由排在前面,所以就把“少广”章排在第四的位置。
(五)商功
章名“商功”不是一个算法名,而是对计算工程量这一工作的简化陈述。此章首先给出一个算题,针对穿地(自然的土)、坚(筑实的土)、壤(松软的土)三种土之间的换算比率,由已知穿地的体积求能得到坚、壤的体积。术文先给出由穿地分别得到坚、壤、墟的比率,然后给出此题具体的计算方法。此外,还顺便给出了由壤求穿地、坚和由坚求穿地、壤的计算程序,这已超出了所问的范围。这个问题之后,先说“城、垣、堤、沟、堑、渠皆同术”,接着马上给出求它们体(容)积的共同术文,之后针对每种立体(都是截面为梯形的四棱柱,其名称为实物名。对于沟、堑、渠是指其内部空间)给出一个算题,不再给出求积的算法,只是在堤、沟、堑、渠等问题的答案之后,分别给出一个劳动力的工作量标准,问相应的用工人数,并结合前面计算出的体(容)积数据给出算法。然后是针对方堢壔(正四棱柱)、圆堢壔(圆柱)、方亭(正四棱台)、圆亭(圆台)、方锥(正四棱锥)、圆锥、堑堵(底面为直角三角形的三棱柱)、阳马(一条侧棱垂直于底面长方形的四棱锥)、鳖腝(每一个面都是直角三角形的四面体)、羡除(有两个面垂直的楔形体)、刍甍(将一个直三棱柱的一条侧棱缩短以后得到的楔形体)等立体求体积的算题和算法。接下来先说“刍童、曲池、盘池、冥谷皆同术”,接着给出它们的术文。其中先是给出它们共同的求积算法,再就曲池如何使用这一算法做出交代。接着依次给出这些立体的算题,不再给出它们的求积算法,但对盘池、冥谷算题又先提供一些工作量的数据,问每人的工作量和用工人数,之后给出了相应的算法,它基于前面算出的容积数据。以上这些都是以包括各种形状的体积(容积)算法为主要内容的工程量的计算。这类算法和算题的编排,反映了古人心目中算法的中心地位和算题的示例功能,编排上具有层次性。之后是将粮食堆成圆锥、半圆锥(由过顶点和底面圆直径的平面平分后得到)、四分之一圆锥(由过顶点和底面圆的两条垂直直径的两个平面划分得到)的形状,求其体积的算题和算法。最后是三个求体(容)积问题的逆问题,分别涉及垣(截面为梯形的四棱柱)、仓(长方体)和圆囷(圆柱)三种立体。
“商功”章讨论的都是秦汉社会经常需要处理的数学问题,虽涉及多种算法,但核心还是不同形状立体的体积算法,排在主要与面积相关的“少广”章之后作为第五章,有一定合理性。
(六)均输
“均输”章处理涉及均等观念或运输的一些相对复杂的比例问题,其中包括涉及负担平均的均赋问题和涉及少府下均输官运输活动的算题,以及复比例、连比例等问题。此章中涉及田地(如“假田”题讲按面积收租,“程耕”题讲三道耕田程序与面积的关系)、体(容)积(如“竹节”题和“五渠注池”题)。此章前面4题建立在今有术、衰分术之上而更为复杂。因此,“均输”置于“商功”之后作为第六章,有一定合理性。
(七)盈不足
“盈不足”章的典型问题和“方程”章的问题在数学结构上都比较单一,按现代的观点,它们都是线性方程组问题。其中,前者只限于两个方程,后者可以是三个或更多个方程。但从古代的观点来看,它们的区别很大。
“盈不足”章的典型问题具有或同构于这样的形式:若干人一起买某物,当每人出钱数为a1时,总钱数与该物品的价格相比,要么多(“盈”)要么少(“不足”)b1,要么不多不少(“适足”);而当每人出钱数为a2时,也会出现这三种情况中的一种,这样就得到5种情况:一盈一不足、两盈、两不足、一适足一盈、一适足一不足。《九章算术》将第2、3两种的方法合并为“两盈两不足术”,第4、5两种的方法合并为“盈适足不足适足术”,这样就得到三种基本类型的算法。同时,《九章算术》将一般性的问题通过两次假设化为基本类型来求解。用盈不足方法解一般性问题,只有题设的数量关系相当于一次函数时,才可求得精确解,否则只能求出近似解。“盈不足”章有3个问题中的数量关系不是线性的,但古人没有区别对待。此章前三类问题结构典型,算法固定,与前面各章都不一样。此章后面的一般性问题通过转化以后也具有同样的性质。因此,把“盈不足”章置于“均输”之后是有道理的。
(八)方程
“方程”章处理现在用多元一次方程组解决的问题。这里的方程在形式上与增广矩阵更为接近,而运算程序也与增广矩阵的变换相似。此章开头给出一个算题,题设中的数量关系正好可以对应一个多元一次方程组(称为“方程”),术文给出了列出“方程”和求解“方程”的完整程序,称为“方程术”。第二题题设中的数量关系不能直接对应一个“方程”,《九章算术》提出了损益术,将数量关系加以转化以便直接对应一个“方程”,从而可以用算筹列出一个“方程”,此术具有现代方程中移项法则的功能。此章引入了正负数,在第三题之后给出了“正负术”,是正负数的加、减法则,同时也与消元时所针对的两列数的头位是同号还是异号有关。后面的所有算题,都以方程术、损益术和正负术为基本方法求解。它们大体上将同种应用场景的问题放在一起,按从易到难的顺序编排。可见,方程章内部的编排是很合理的。
“方程”章所有问题的题设中的数量都是线性关系,而“盈不足”章则有少量非线性关系,但古人没有刻意关注这一区别。“方程”章的内容在数学结构上总的来说比“盈不足”章要复杂,算法更难,变化也要多一些。所以“方程”章置于“盈不足”章之后是合适的。《九章算术》中“盈不足”章与“方程”章的顺序,和它们在郑众所列“九数”中的顺序对调,这有可能是《九章算术》对郑众所列“九数”的改进,也有可能是郑众所列“九数”并非先秦之旧,是在流传过程中颠倒了先秦“九数”中这两项的顺序。
(九)勾股
“勾股”章首先列出由勾、股、弦中两项求第3项的三个算题,然后一并给出它们的术文“勾股术”,相当于勾股定理的三种形式。第4、5两题可直接化为用勾股术求解的算题。接下来的5个算题具体设问场景不同,但都具有已知勾和股弦差(弦与股之差)求弦的数学结构。第11题是已知勾股差(勾与股之差)、弦求勾、股。第12题是已知股弦并(股与弦之和)与勾的比、股的数值,求股和勾弦并的数值。第4-12题都是勾股术的应用,其中第12题实际蕴含着整数勾股形的通解公式。第13题已知勾、股求其内接正方形的边长,其算法实际源于出入相补原理和相似勾股形对应边成比例的原理。第14题由勾股求内切圆直径,应该是用出入相补原理推出其算法的。第15题至第23题都利用相似勾股形对应边成比例的原理求解,全都属于远距离测量。最后的第24题“户不知高广”由勾弦差与股弦差求勾、股、弦。除此问题外,其他问题的编排顺序都没有明显的问题。豫赞堂本《九章算术》把这个问题移到第12题之后,这可能更接近原书。不论如何,即使原书此题置于此章最后,其编排也大体上是合理的。“勾股”章的问题,变化相对较多,问题的数学结构之种类较多,与前面各章很不一样,不宜放在方田、粟米、衰分、少广、均输或盈不足之后,将它置于方程之后是合理的。当然,把它置于商功之后也未尝不可,但也没有比放在最后有明显的优势。
(十)具体内容与分章的交错问题
《九章算术》体系也把不属于章名能统括的一些算题,按相似性或其他的关联性放入各章中。从算法的结构和相应的算题来看,各章之间的界限总的来说是非常清楚的。第一、四、五、八至九章等五章中的每一章都容易与其他章的内容区分开来。比较容易让人产生误解的是各种比例问题及其算法在粟米、衰分、均输三章的分布,以及第七章中第15题是否属于其他问题误入此章的情况。
“粟米”“衰分”和“均输”三章都讲比例问题和算法。这几章内有的算题与章名的对应关系不明显,初看之下在归类上具有很大的随意性,读者容易觉得存在应放在此章的内容被放入彼章的情况,好像编排方式很不合理,缺乏一致性。其实不然。
如前所述,“粟米”章的标题来自开头的“粟米之法”,其核心算法是今有术,其后的具体内容都是今有术的直接应用,或简单变通后的间接应用。同时,“粟米”章在有关比和比例的三章中是最靠前、最简单的。所以不存在“衰分”和“均输”两章的问题误入“粟米”章的情况。
“衰分”章有四类问题。章首为衰分术,之后有7个例题,是为第一类。然后是返衰术,为按已给比率的倒数进行分配的算法,之后给出2个例题,是为第二类。这两类都与章名“衰分”很切合,可以称为衰分本术类问题。第三类是第10-19题,它们都具有这样的结构:已知甲物的数量为A,对应于乙物的数量为B,求甲物的数量为a时,对应于乙物的数量是多少。这明显是正比例问题,按今有术求解,与衰分之名不符。从算法上看,确实应该把它们放在以今有术为主要算法的“粟米”章。但是,这些问题都和“粟米之法”无关,在算法上比该章经率术问题要复杂,由于“粟米”章本来就不以“今有术”这个方法来命名,所以不把这10个算题放入“粟米”章而是归入“衰分”章虽然不甚合理,但也算不上归属混乱。另外,“粟米”章已有46题,而“衰分”章只有20题,如果把此章的这10个题置于“粟米”章,则两章体量相差过于悬殊。考虑到这10个问题比“粟米”章的第二类问题要复杂,把它们置于“衰分”章而不是“粟米”章也是有其内在逻辑的。第四类问题只有此章最末的第20题:贷1000钱的月息为30钱,已知贷了750钱,9日归还,求利息是多少。这个算题也不是衰分问题,而是更复杂但可化为按正比例算法求解的问题,其比例关系是:所贷钱数与日数的乘积和息钱成正比。这个问题可以说是第三类的延伸。因此,把它放在第三章里也有一定道理。
值得注意的是“均输”章的第7题与“衰分”章的最后一题有很大的相似性。前者是说,雇人运盐2斛走100里,给工钱40钱;如果运盐1斛7斗3升又3分之1升走80里,问应该给多少工钱。这里,盐的体积和运送的距离之乘积,与工钱数成正比,这一数量关系是解决这一问题的关键。这两个问题在算法结构上是相同的,从这点上看,应该把它们归入同一章才合适。但是,汉代常常把盐、铁的经营与均输作为一起讨论的话题,所以编者把第7题置于“均输”章而不是“衰分”章大概不是出于偶然而是有意为之。从这一角度看,“衰分”章的息钱问题置于“均输”章才是最合理的。不过,《九章算术》问题的归类,也不全是根据算法结构来安排的,它被置于“衰分”章,可能还是由于上面提到的编者将其视为该章第三类问题的延伸。当然,这里存在考虑不周的问题,但我们不宜假设古人对每一处都能考虑得十分周密。
《九章算术》现存版本的“均输”章有28个算题,另有一个王孝通《缉古算经》所引的“犬追兔”问题不见于今本《九章算术》中,但他声称它来自“《九章》均输篇”,可见原本《九章算术》的“均输”章至少有29个算题。此题当初应该在今本“均输”章的第13、14题之间。此章前4个算题考虑多个指标下如何公平摊派赋税,其现实背景和数学结构都很接近,属于同一类,被认为是均输算题;其他的算题则被认为不是均输问题,而只是被编入“均输”章的杂题。20世纪80年代以前学术界普遍认为,经济上的均输是汉武帝时期才开始产生的,数学上的均输不能早于此时。80年代张家山西汉初年墓出土“均输律”以后,学术界仍认为只有前4题是均输问题,只是它们的时代可以更早。对于其他算题,有的学者认为是后来增补的。仔细考察后可以发现,情况不是这么简单。前4题其实应该用此章第3、4两题提到的“均赋”来概括,“均输”的含义则包括了“均赋”而范围更广。从先秦到西汉,除包括让赋税摊派公平的“均赋”外,经济上的“均输”至少还包括先秦和秦代少府下之均输官的事务,“均输”章第9题在先秦或秦代的蓝本就是参考这种现实背景而设立的。不仅如此,作为《九章算术》中数学门类的“均输”,其含义除涵盖第1-4、9题外,还能统括此章其他算题(含王孝通所引的“犬追兔”问题)。
关于比例问题和算法的三章中,“粟米”章最简单,“衰分”章次之,“均输”章最复杂,除与章名能很好对应的典型算题外,其他非典型算题的安排也是有规律可循的:一方面,编者按算法上从易至难的顺序把它们安排到三章中去;另一方面,在同一章内则大体按现实背景或算法结构上的相关性进行归类和编排。
《九章算术》“盈不足”章第15题的解法,表面上看与此章盈不足方法的三种类型都对不上,所以有学者认为是其他类型的问题误入此章。实际上,参照出土算书可以复原此题算法的思路,从而可以断言此题用到了第一类盈不足方法,只是“术文没有叙述过程,只记录了结果”而已,此题归入“盈不足”是完全合适的。
综合来看,《九章算术》的章名中,衰分、少广、盈不足、方程和勾股是数学方法的类别名;粟米、商功是数学应用场合的类别名,前者同时也取自卷首的关键词。“方田”章定名的依据是方法名“方田术”,而方法名中的“田”字又反映了其应用场合;“均输”章之得名可能涉及取首句的关键词、方法和应用等多重因素。《九章算术》的知识分类虽然偶有值得商榷之处,但总的来说相当好地保持了内容划分上的一致性,此章误入彼章的例外情况很少。因此,《九章算术》是以数学方法为主、应用为辅并兼顾其他因素的混合型知识体系。
四、《九章算术》体系中算法的特征、算法与算题的关系
一般人的印象中,《九章算术》是应用问题集,含有246个问题,都采用题设、题问、答案、术文的形式。那么,术文亦即算法是从属于算题的。郭书春分析《九章算术》的算题与术的关系,分为四种类型:一是“先列例题,后给出抽象性术文者”,“共64术,含有106个例题”;二是“先给出抽象性术文,后列出例题”且例题无“演算术文者”,“共10术,10个例题”;三是“先给出抽象性术文,后列出例题,而例题含有题目、答案、术文三项,术文是前面抽象性术文的应用者”,“共8术,含有80个例题”;四是“一题一术且术文未离开题设的特定对象甚或数字者”,“共50问,50条术文。其格式都是题目、答案、特定术文”。前三类都属于给出抽象性术文及术文之例题的情形,占到近80%;后一类只有20%多一点,其术文的“实质和原理也具有普适性,只是概括得不够,抽象程度不高而已”。他得出结论说:“在《九章算术》中起主导作用、核心作用的不是应用题,而是术,246个题目只是术文的应用对象”。可以说,《九章算术》的绝大多数算法具有普适性,表达上采用一般性的用语和常数而非特定算题的具体数字。在算法与算题的关系上,算法是中心,算题从属和服务于算法。算题有两方面的作用,一是给出的已知项和所求项有意展现它们之间的关系,因而有问题模型的意义;二是算题起用算法求解的示例作用。下举一例,反映《九章算术》的特点。“商功”章在讨论一组长方台(上下底面是两个平行的长方形的六面体,且它们的两组边分别平行。也就是说,四个侧面均为梯形)和可以与它类比的曲面立体的体积计算时,这样给出算法和算题:
刍童、曲池、盘池、冥谷,皆同术。
术曰:倍上袤,下袤从之;亦倍下袤,上袤从之;各以其广乘之;并,以高若深乘之,皆六而一。
其曲池者,并上中、外周而半之,以为上袤;亦并下中、外周而半之,以为下袤。
今有刍童,下广二丈,袤三丈;上广三丈,袤四丈;高三丈。问积几何?
答曰:二万六千五百尺。
今有曲池,上中周二丈,外周四丈,广一丈;下中周一丈四尺,外周二丈四尺,广五尺;深一丈。问积几何?
答曰:一千八百八十三尺三寸少半寸。
今有盘池,上广六丈,袤八丈;下广四丈,袤六丈;深二丈。问积几何?
答曰:七万六百六十六尺太半尺。
负土往来七十步,其二十步上下棚除。棚除二当平道五,踟蹰之间十加一,载输之间三十步,定一返一百四十步。土笼积一尺六寸,秋程人功行五十九里半。问人到积尺及用徒各几何?
答曰:
人到二百四尺。
用徒三百四十六人一百五十三分人之六十二。
术曰:以一笼积尺乘程行步数为实。往来上下棚除二当平道五。置定往来步数,十加一,及载输之间三十步以为法。除之,所得即一人所到尺。以所到约积尺,即用徒人数。
今有冥谷,上广二丈,袤七丈;下广八尺,袤四丈;深六丈五尺。问积几何?
答曰:五万二千尺。
载土往来二百步,载输之间一里,程行五十八里;六人共车,车载三十四尺七寸。问人到积尺及用徒各几何?
答曰:
人到二百一尺五十分尺之十三。
用徒二百五十八人一万六十三分人之三千七百四十六。
术曰:以一车积尺乘程行步数,为实。置今往来步数,加载输之间一里,以车六人乘之,为法。除之,所得即一人所到尺。以所到约积尺,即用徒人数。
其中刍童、盘池、冥谷都是长方台,曲池是把长方台的上、下底面都由长方形换成平行的扇环之后形成的立体,它有两个侧面为曲面,两个侧面为梯形。《九章算术》首先说明四种立体的体积算法是相同的(“皆同术”),然后列出术文。术文不涉及题设中的已知数值,只用到术语(“上”“下”“中”“外”“广”“袤”“周”)和常数6,具有普适性和抽象性;同时只需按术文一步一步地做,就可以求得问题的答案,也就是说算法具有程序化的特点。术文分两部分,前一部分是长方台的体积算法,是基础性的;后一部分是将曲池化为长方台的方法。
术文之后再针对每种立体给出一个算题,都含有问题和答案,但针对求体积,不再给出术文。后两个算题针对新加入的其他条件,给出了计算其他指标的术文。可以看出,术文存在不同的层次,主要算法都讲究普适性,具有程序化的特点,而算题服务于算法。
上面的分析表明,《九章算术》体系追求算法的普适性,它以算法为主体,算题服务于算法,起问题模型和示例作用。这一体系内容丰富多彩,编排合理,使《九章算术》成为最重要的数学经典,被后世奉为典范。但它没有刻意呈现数学方法、知识的理论基础和逻辑关联,留下了遗憾,同时也给后世学者留下了更多的学术空间。
五、中国传统数学的《九章算术》传统
《九章算术》编成以后,对后世产生了深远的影响,形成了一个研究、注释和阐发《九章算术》的传统,可称为《九章算术》传统。
《汉书·艺文志》著录的《许商算术》《杜忠算术》成书于西汉末年,是最早见于正史艺文志和经籍志著录的数学著作。两书现已失传,但《广韵》“筭”字条说:“九章术,汉许商、杜忠,吴陈炽,魏王粲并善之”。李俨先生据以推测这两部数学著作是研究《九章算术》以后而形成的作品,这是可能的。《后汉书》中马援的传记说,他的侄孙马续“十六治诗,博观群籍,善《九章算术》”。马续(生活在约公元1世纪后期至2世纪前叶)是正史明确记载的第一个《九章算术》的研究者。徐岳(生卒年不详,东汉晚期人)是史籍中明确记载的第一个写有《九章算术》注本的人,他还有阐发《九章算术》要义的著作。东汉中叶以降,见于史籍的《九章算术》研究者代不乏人,而为《九章算术》作注形成了撰写数学著作的一种方式。这种著作除非只注释《九章算术》的一部分,否则都自然会承袭它的体系。比如刘徽和李淳风(602-670)等都为《九章算术》作注,虽然两人思想各有特点,但内容的安排均依附于原书,并在整体上保持原来的篇章结构。
在《九章算术》的各家注释中,最重要的是刘徽注。据刘徽自序,他年少时就开始学习《九章算术》,长大后又详细研究,分析其中的道理,领悟其中的奥秘,认识到各种数学知识形成一个整体,如同一棵有相同的本干而又分开、扩展成各种大大小小枝条的大树。
(采自郭书春:《古代世界数学泰斗刘徽》,第318页)
刘徽对《九章算术》的一些名物和术语做了解释或界定,又利用了一些基本的原理,主要有关于率的齐同原理,长方形面积算法、长方体体积算法、出入相补原理、勾股定理(“勾股术”)、相似勾股形对应边成比例的原理、关于由同一堑堵分割而成的阳马与鳖腝体积之比为2:1的刘徽原理、关于截面积的祖暅之原理(刘徽对此已有认识)等,对《九章算术》的算法进行了相对严格的论证(当然有的也只是验证)。他还纠正了《九章算术》中少量不准确或错误之处。大体上说,刘徽为《九章算术》的算法提供了理论基础,形成了自己内在的理路。下图是郭书春先生根据刘徽注中的叙述,复原的刘徽数学思想中的数学体系。
虽然刘徽心目中有一个数学知识呈树状结构的思想观念,但他并没有把数学知识的各个部分按自己的理解以明确的篇章结构呈现出来。从文本结构上看,刘徽心目中有关联的数学知识单元分散在《九章算术》不同的章、不同的算法(“术文”)和算题、不同的句子或字词之下,其间的联系体现在分散于各处的语言表述中,这是一种错综复杂、条理不清的文本结构。所以,我们认为刘徽的注释虽然反映出其思想中有把数学形成一个逻辑体系的意识,但他并没有清晰地构造出一个实实在在的数学体系。从现代数学的价值观看,这不仅是他个人,也是中国数学史上的遗憾。刘徽还增补了一章《重差》,附在最后的“勾股”章之后,使之与原书及相应的注释形成了一个十章体系。这一章的内容虽然很重要,却只是对大的框架做的少量补充。
还有一些著作的数学体系以《九章算术》为基础。如明代《九章算法比类大全》《算法统宗》《数学通轨》等,在前面安排了一些基础知识,相对更为合理,有的体量庞大(如上述前两种),内容丰富。但总的来说,它们仍大致按《九章算术》的分类来组织数学知识。明代王文素的《算学宝鉴》结构比较特殊,先有卷之首图,之后的第一至六卷是基础性知识,再之后是主体部分,最后是算学诗词。主体部分分成一百四五十个小类,分布于卷七至卷四一共35卷之中。这些小类并不归并到几个大类之中,但我们发现,《九章算术》每章的名目都是这些小类名目之一,且它们在小类中的相对顺序保持不变。而且在《算学宝鉴》中,小类以《九章算术》章名命名者,紧接其后若干小类也可以用此名来概括,然后又接一个以《九章算术》章名为名的小类,再紧接可以用它来概括的若干小类,如此一直到可以用勾股来概括的若干小类。然后是一大批关于开方的小类,共11卷。可以说《算学宝鉴》仍在一定程度上继承了《九章算术》的体系。
还有一些著作与《九章算术》的体系差异较大,但也可以看到受《九章算术》体系影响的痕迹。比如13世纪秦九韶的《数书九章》,此书原名《数术》或《数书》,书名中的“九章”二字,乃后人所加,但这其实反映出在秦九韶心目中此书与《九章算术》存在着紧密的联系,因为秦九韶的自序说:
周教六艺,数实成之学,士大夫所从来尚矣。其用本太虚生一而周流无穷,大则可以通神明,顺性命;小则可以经世务,类万物,讵容以浅近窥哉!……《九章》所载即《周官》“九数”。系于方圆者为术,皆曰外算,对内而言也。其用相通,不可岐二。独大衍法不载《九章》,未有能推之者,历家演法颇用之,以为方程者误也。
又说:
数术之传,以实为体,其书《九章》,惟兹弗纪。……述大衍第一。
这些明显表现出秦九韶对《九章算术》的推崇,他认为除了大衍法外,其他的内容都可以从《九章算术》中找到根源。事实上,《数书九章》也分为九类,虽然类名与《九章算术》多数不同,但也有接近的。同时,在此书的术文中,经常提到要用何种方法,而且这些方法中不少采用《九章算术》的章名,甚至在《九章算术》中不是方法名的“粟米”“商功”和“均输”等章名,在《数书九章》中都被作为方法名来使用。可见《九章算术》对《数书九章》影响之深。
《九章算术》之后很多重要的数学成就,是在研究它之后或为它作注时做出的,其水平和创新程度超出了一般注释的要求。比如刘徽在给《九章算术》的算法提供理论基础的同时,也提出了新的算法和思想方法,其中包括很多重要的原创性成果,如关于率的理论、关于古代方程的互乘相消法、关于牟合方盖的设计,涉及无限概念的割圆术、刘徽原理及其证明等。今天所说的祖暅之原理在刘徽注中已有体现。祖冲之曾为《九章算术》作注,其圆周率的研究是在刘徽注基础上的重大进展;祖冲之、祖暅之父子对球体积问题的解决方法和相应的祖暅之原理的提出,乃是顺着刘徽求牟合方盖体积的思路、刘徽为羡除术所作注释中的思想做出的。北宋的贾宪三角、增乘开方法、容横容直原理的明确表述,南宋杨辉通过“比类”得到的很多算法等,也都是在注释《九章算术》的过程中阐发的。
有些著作在结构上与《九章算术》没有关系,如唐王孝通《缉古算经》,南宋杨辉《乘除通变本末》《续古摘奇算法》等著作,元代李冶《测圆海镜》《益古演段》,朱世杰《算学启蒙》《四元玉鉴》,安止斋、何平子《详明算法》,明代顾应详《勾股算术》《测圆算术》《测圆海镜分类释术》《弧矢算术》,周述学《历宗算会》等皆各有特色,但在方法和思想上仍受到《九章算术》直接或间接的影响,而且也都继承了《九章算术》以算法为中心,以算题为主要依托、问题模型和示例,讲究算法的普适性与程序化的特点。
结语
综上,相互关联的知识被有条理地组织成为一个整体,就形成了一个知识体系。知识体系是多种多样的,体系内部各组成部分之间的逻辑关联有强有弱,公理化演绎理论体系只是其中逻辑关联最强的一种。《九章算术》虽然没有刻意描述如何获得其数学知识的思路,也没有刻意用明确的语言描述书中各部分之间的联系,但这并不意味着它没有形成一个体系,因为其编者确实把其中的内容有条理地组织成了一个整体。从《九章算术》每一章的内部来看,各个部分之间是有联系的,编者对它们的编排虽非唯一合理的顺序,但都有其内在的逻辑,并呈现出一定的层次性,在今天看来也大致是合理的。从各章之间的关系来看,其相对顺序是合理的,章与章之间的界限总的来说是相当清楚的,很少存在本该归入此章的内容误入彼章的情况,即使“衰分”章中与章名明显不符的第三类算题,虽然放入“粟米”章更为合理,但也有不放入“粟米”而放入“衰分”章的理由。各章题名的选取,以数学方法为主、应用场合为辅,并兼顾其他因素,这种考量多个因素的方式,并不妨碍知识分类的一致性。因此,《九章算术》确实形成了一个相当完整的数学体系。在这一体系中,算法与算题关系密切,但算法是主体,大都具有普适性、程序化的特点,算题则服务于算法,发挥问题模型和示例作用。
《九章算术》在公元前1世纪中叶编定以后,成为历代最受尊崇的数学经典,学习、研究和注释它的数学家很多,各种注释本、阐发其要义或模仿它的著作屡见不鲜,形成了一个《九章算术》传统。西汉末年以降大量的数学成就和思想方法,都是在注释、研究或阐发《九章算术》的过程中做出的。可以毫不夸张地说,《九章算术》是中国传统数学在内容、方法和思想上的重要源泉。
附记:本文在修改过程中,参考了匿名审稿专家的意见,谨致谢忱。
原标题:《中国古代数学中的《九章算术》体系与传统 | 邹大海》
阅读原文
来源:山大儒学院
(本文来自澎湃新闻,更多原创资讯请下载“澎湃新闻”APP)
转载请注明来自德立,本文标题:《什么是正四棱柱啊(中国古代数学中的九章算术体系与传统邹大海)》
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...