孙子之歌与韩信点兵

    ——算经十书

    在我国民间,长期流传着一种数学问题,叫“韩信暗点兵”,或者“隔墙神算”。这个数学问题流传甚广,被文人写入诗中,传到了隔海相望的日本。

    三人同行七十稀,五树梅花廿一枝,

    七子团圆正半月,除百零五便得知。

    这首诗中所写的“孩子问题”,最早出现在魏晋时期的《孙子算经》一书。它通俗地反映了我国古代数学中的一项卓越成就,那就是现代数论中的一次同余问题。

    《孙子算经》中有“物不知数”问题:

    有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?

    《孙子算经》所给的答案是此物23个。由于数字比较简单,这个答数通过试算就可以得到。而《孙子算经》并不是通过试算,而是通过“术文”,给出解题方法:三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘;将诸乘积相加,然后减去一百零五的倍数。

    将“术文”列为算式:

    此物数=70×2+21×3+15×2-105×2,式中105是模数3、5、7的最小公倍数。《孙子算经》中给出的是符合条件的最小的正整数。对于一般的余数,《孙子算经》指出,只要把上述算法中的余数2、3、2,分别换成新的余数就行了。

    “物不知数”题算法的关键,是“韩信暗点兵”中点出的3个数,即“三人同行七十稀”的70,“五树梅花廿一枝”的21,“七子团圆正半月”的15。这三个数,可以用最小公倍数3×5×7=105,各约去模数3、5、7后,再分别乘以整数2、1、1而得到。

    现代数论的著名的剩余定理,基本形式已经包含在《孙子算经》的“物不知数”问题的解法之中。只不过《孙子算经》没有按一般定理表述而已。后来,由宋代的大数学家秦九韶完成了剩余定理的工作。

    1852年,欧洲的传教士伟烈亚力写成了《中国科学摘记》一书,介绍了《孙子算经》的“物不知数”问题和秦九韶解法,引起了欧洲学者的重视,给予高度的评价,称他们为“最幸运的天才”,称求解一次同余组的定理为“中国剩余定理”。

    “物不知数”问题,只是《孙子算经》中的一个问题。像《孙子算经》这样的古代数学书,我国古代是很多的。下面,我们就向青少年朋友简单介绍中国古代唐以前的最重要的数学著作——《算经十书》。

    《周髀算经》

    关于《周髀算经》的成书年代,中外学者有不少争论。大多数学者认为《周髀算经》成书应不晚于公元前1世纪的西汉末年。

    关于《周髀算经》的书名,学者们的解释也众说不一。中国古代数学家李籍在《周髀算经音义》一书中,认为“周”是“算日月周天行度”,即日、月运行的圆道为周。“髀”字解释为股骨,有人据此解释为骨制的算筹。英国剑桥大学著名科技史专家李约瑟博士,将书名译为《关于表与天的圆道的算术经典》。也有的学者把周解释为周朝,认为《周髀算经》是“公元1100年的一部完美的数学记录”。显然,这个解释与确认的年代都是不准确的。

    《周髀算经》分上下两卷。上卷的第一部分是周公与商高的对话,他俩以问答的方式讨论了天、地的测量与直角三角形的公股定理(欧洲称为毕达哥拉斯定理)。称直角三角形的两条直角边分别为公股,斜边为弦,发现了勾三股四弦五,勾股平方和为弦之平方的关系。所以,已知其中两项可求第三项。利用这一原理,在古代测量中,可完成许多任务。如商高曰:“平矩以正绳,偃矩以望高,覆矩以测深,卧矩以知远”。就是说把直角三角形平放在地上,可以用标绳设计出平直方形的工程;把直角三角形竖起来可以测量高度,倒立的直角三角形可以用来测量深浅,而平放的直角三角形可以测算遥远的距离。

    第二部分是陈子与荣方的对话,主要是讨论日影的测量。首先估计在不同纬度上日影的长度差,接着谈论用窥管测量太阳直径的方法。

    下卷讨论了与太阳的周年运动有关的计算,提到利用水平仪来取得测量日影所需要的水平面,并列出一年中各个节气的日影长度表。另外,还讨论了从日出日落的观察来确定子午线的办法,恒星的中天、二十八宿、十九闰周等天文问题。利用一根定表和一个游表在地面上测量二十八宿距度的方法,尽管这个方法测量得的是二十八宿地平经度差,而书中误为赤道经数差,但却为我们研究秦汉之前的赤道坐标系统和测量方法提供了信息资料。

    《周髀算经》还是一部天文著作,书中的星图——“黄图画”,画有冬、夏至和春、秋分日道,又画有二十八宿和其他星象。这实际上是一幅以论天极为中心的全天星图,后人称这种形式的星图为盖图。

    《周髀算经》记载的历法数据与战国、秦汉期间的四分术相同,比太初年间的《三统历》还早。年长为365天,19年7闰为235月,月长为29天。这些,也都是宝贵的天文资料。《周髀算经》不仅是我国古代数学史上的一部重要著作,而且是世界数学史上的重要著作。我国古代数学家陈杰在《算法大成》中评价说:《周髀算经》的伟大,在于它著于占星与卜卦占支配地位的时期,而讨论天地现象,却丝毫不带迷信的成分。欧洲的数学史家史密斯、日本的数学史家三上义夫都介绍过此书;欧洲科学史家毕欧李约把它的影响扩大到全世界。唐代收入《算经十书》的第二部古书是《九章算术》,本文不再赘述。

    海岛算经

    《海岛算经》是收入《算经十书》的第三部古书。《海岛算经》是三国时期刘徽的著作,成书于魏元帝景元四年(263)。最初,《海岛算经》做《九章算术》的一章,列于《九章算术》之后,名字叫“重差”。唐代开始单独刊印,因书中第一个问题是测量海岛,改名《海岛算经》,并在刊刻《算经十书》时,列入其中,作为唐代太学学生的数学课本,得到了广泛的传播。

    全书9个问题,通过讨论直角三角形的性质,讨论高度与距离的各种测量方法,并附以测竿与垂直的横木为工具。这9个问题:一、从海上测量岛屿的高度;二、从平地测量山上的树高;三、从远处遥测围城的大小;四、用矩尺测涧谷的深度;五、从山上测量建于平地的塔高;六、在平地遥测远处渡口河面之宽;七、在池边测量透明池水的深度;八、从山上测量河的宽度;九、从山上测量城市的面积。

    这9个问题,说明了此书的实用价值,不论对军事,对城市设计,水利建设都有直接用处。唐代天文学家李淳风为此书作注,现代数学家钱宝珠校点过此书。赫师慎将此书译为法文,李约瑟用英文做过介绍。

    《孙子算经》

    《孙子算经》是收入唐代《算经十书》的第四部古算书,约成书于东魏或南北朝时期。现传本分为上、中、下3卷。

    上卷叙述算筹记数方法和算筹乘除法则;记录了度量衡单位的微小计量名称:如“十忽为一丝,十丝为一毫,”“十圭为一撮,十撮为一抄,十抄为一勺”,等等。并附有简单的金、银、铜、铅、铁和玉石的密度(比重)表。

    中卷,举例说明算筹分数算法和算筹开平方法,并有许多浅显易懂的应用问题。

    下卷,除浅显易懂的应用问题外,还选取了一些算术难题。如前边所说的“物不知数”问题,就是其中之一。传下来,称为“剪管术”、“鬼谷算”(鬼谷子是春秋战国时期的思想家,善于推算)“秦王暗点兵”等。

    英国传教士伟烈亚力将此书的算法介绍到欧洲,得到欧洲算学家马蒂生的称赞。

    《夏侯阳算经》

    《夏侯阳算经》是收入《算经十书》的第五部古算书,成书于南北朝时期,作者夏侯阳生平不详。

    《夏侯阳算经》著录于《隋书籍志》:“《夏侯阳算经》二卷”,也见于《旧唐书籍志》:“《夏侯阳算经》三卷,甄鸾注。”《新唐书艺文志》则著录为:“《夏侯阳算经》一卷,甄鸾注。”而收入《算经十书》的《夏侯阳算经》是3卷,并不是夏侯阳的原作,而是唐朝中期的实用算术书,有的学者认为是韩延所作,又名《韩延算术》。原本《夏侯阳算经》尚存600余字,从中可知,它叙述了算筹乘除法则、分数法则,解释了“法除”、“步除”、“约除”、“开平方除”、“开立方除”5个名词的意义。其他已不可考。

    现在所看到的收入《算经十书》的《夏侯阳算经》,是韩延所作,约成书于公元770年。它分为上、中、下3卷,共83个例题。其中个别题与《五曹算经》、《孙子算经》相同。全书重点讲述了算筹乘除捷法、十进位小数的应用、各种结合实际的应用算术题。上卷的“明乘除法”章,引用了原本《夏侯阳算经》和《时务算术》的问题。中卷的“求地税”章,有按亩征税谷二题;“定脚价”章,有“两税米”和“两税钱”各一题;“分料”章,有分配官本利息问题;下卷的“说诸分”章,又有“两税钱”3题。这些都是珍贵的数学史料和结合实际的应用问题,给地方官吏和老百姓提供了应用数学知识和实际生活的运算技巧。

    欧洲人赫师慎写过有关《夏侯阳算经》的论文。唐代以来,它又被列入太学生课本。特别是从唐代李淳风到宋代秦九韶的近600年间,只有《韩延算术》流传了下来,所以,它是研究这段数学史的非常重要的文献。

    《张邱建算经》

    《张邱建算经》是收入《算经十书》的第六部古代算书,书的自序告诉我们,此书写成于《孙子算经》、《夏侯阳算经》之后,大约是南北朝时期的宋武帝永明二年(484)以前完成。张邱建是清河人,生平不详。

    《张邱建算经》全书分3卷,内容涉及等差级数、二次方程和不定方程等问题。所收问题大多与社会实际相关,如测量、纺织、交换、纳税、冶炼、土木工程、利息等问题。

    作者认为乘除并不困难,而分数十分麻烦。书中用力指导分数的运算,收录分数应用问题较多。正确运用比例方法解答了几何级数问题。很重视算术问题的具体分析,提高了解题的技术。

    《张邱建算经》是《九章算术》后,一部较有创见的算术书。有些问题的创设与解法,超出了《九章算术》的范围,在我国数学史上是有一定贡献的。现传本《张邱建算经》,也有此散。中卷少了最后几页,有几题缺失;下卷缺最前两页,缺失2—3个问题。中华书局1963年钱宝珠校点本,保存了92个题目,是一份珍贵的数学资料。

    《缀术》

    唐代收入《算经十书》的第七部是《缀术》。它是祖冲之与儿子祖暅两人所著。《隋书籍志》著录的祖冲之所著《缀术》是五卷,王孝通《缉古算经》所著录的祖暅所著《缀术》未言卷数。祖冲之父子,祖籍河北省范阳郡县(今涞水县),生活于南北朝时期的宋、齐两朝。

    现传本《缀术》是宋代刊刻《算经十书》时,以《数术记遗》来代替的。《数术记遗》一卷著录为汉徐岳撰,现代学者考证实为甄鸾撰。

    主要内容是大数进位和记数法。其书说:“黄帝为法,数有十等及其用也,乃有三焉。十等者,亿、兆、京、壤、沟、涧、正、载。三等者,为上、中、下也。其下数者,十十变之。若言十万曰亿,十亿曰兆,十兆曰京。中数者,万万变之。若言万万曰亿,万万亿曰兆,万万兆曰京也。上数者,数穷则变,若言万万曰亿,亿亿曰兆,兆兆曰京。”这就是甄鸾的大数其及进位法。记数法列举了14种:积算、太乙算、两仪算、三才算、五行算、八卦算、九宫算、运筹算、了知算、成数算、把头算、鬼算、珠算、记数。这些算法大多数不是来源于实践,也很少能应用于实际工作与生活之中。对后世数学裨益不大,它的科学与实用价值都不能与《缀术》相比。

    《五曹算经》

    《五曹算经》是收入《算经十书》的第八部古算书。它也是甄鸾所撰。生活于南北朝时期北周王朝的甄鸾,字叔遵,河北省天极县人。曾任北周的司隶大夫、汉中郡守。他精通天文、算学,还著有《五经算术》、《数术记遗》等书。

    全书分5卷,第一卷是田曹,讲述田地面积的量法与计算。第二卷是兵曹,主要讨论军队给养的计算问题。第三卷是集曹,与《九章算术》粟米的比例问题相仿,介绍各种粮食交易的计算问题。第四卷是仓曹,主要是介绍粮食的征收、运输与仓储的计算问题。第五卷是金曹,有关丝、绢、钱币的比例问题。《五曹算经》是为地方行政官员所写的应用算数书。解题方法浅显易懂,全部问题都能结合当时实际,实用性很强。其中,长方形、三角形、梯形、圆形、圆环形的面积公式与《九章算术》的“方田”章相同。“蛇田”“鼓田”“腰鼓田”计算面积公式有差错。读时应精心鉴别。中华书局1963年钱宝珠校点《算经十书》本,对上述错误皆有针砭,可供参考。

    五经算术

    《五经算术》是唐代刊刻《算经十书》时的第九部古算书,也是甄鸾所撰。

    《五经算术》是对儒家经典:《尚书》《诗经》《周易》《礼记》《论语》《左传》中,有关数学知识的说明和计算方法的注释。如《尚书典》:“以闰月四时成岁”句,用《四分历》法加以解释。《诗经伐檀》:“胡取禾三百亿兮”,《丰年篇》“万亿及”,对兆、亿等大数加以注释。他批判了毛、郑玄等人的古注文,提出了自己对这些大数的进位法。《论语·学而》篇:“道千乘之国”,认为千乘之国的面积是10万平方里。用开方法,知道是边长为316里68步的正方形。《周官考工记》车盖法,用勾股定理去解释。《仪礼》丧服经带法,用等比级数去解释。《左传》有关日历的记载,用6种四分历中的周历去解释。全部注文对数学没有什么新的贡献,是关于经文的一种古注。

    《缉古算经》

    《缉古算经》是收入《算经十书》的第十部古算书。唐代数学家王孝通所撰。王孝通生卒年不可考。《新唐书》说他唐初为通直太史丞,算历博士,他曾提出颁行的历法不当定,天文计算中,不应有岁差。武德九年(626),他又同大理寺卿崔善为一起,对傅仁均的《戊寅历》做了许多校正工作。在天文历法工作中,他反对岁差等新的科学发现引入历法计算,是一个守旧派。但在数学方面,他却是一个先进的创新派。《缉古算经》是他的代表作品,大约写成于唐武德八年(625)前后。

    全书20道应用问题。包括天文学计算题,用算术法解答;立体体积问题,用三次方程解答;勾股问题,也用三次方程解答;解题列出的算式是四次方程,但可用开平方法解答。其主要贡献是三次方程应用问题解法。用“术”文阐述三次方程各项系数的计算方法,用小注说明建立方程的理论根据。

    隋文帝统一全国后,开始修筑长城,开凿运河等巨大土方工程。对数学知识与测算技能提出了更高的要求。《缉古算经》中,介绍的开立方法(求三次方程的正根),解决了工程建设中存在的问题。王孝通结合工程实际问题,如建造上窄下宽、前高后低的堤防,创用开立方法,解决了一般的土方计算和验收工作中的问题。

    《缀术》中可能有三次方程,但早已失传,其方法不能确知。《缉古算经》是讲解三次方程,传流至今的最早的算书。阿拉伯人10世纪以后,才有三次方程出现。12世纪前后,中亚学者奥马尔海牙姆(1048—1122)才较系统地研究了三次方程的数值解法。欧洲三次方程的出现则更晚。所以《缉古算经》中有关三次方程的数值解法是世界数学史上独占鳌头的成就。