秦九韶对大衍术的筭图表达
——基于《数书九章》赵琦美钞本(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卷,每卷所列问题多寡不一,每问之后有答,答后有术、术后有草。有的草后具有算图,有的配有示意图。《数书九章》中的问、答、术、草都有一定的格式,而算图、示意图则是根据具体情况而定。”参见文献[29],104页。实际上,《数书九章》的筭图并非总在草之后,还有可能放置在问与答之间、答与术之间、术与草之间等其他位置。。“图”在《数书九章》中往往是“筭图”的简称,秦氏四次提到了“筭图”之名,更多时候是说“具图如后”。图1是赵钞本中的一张关于复比例“燕翅算法”的筭图。

图1 赵钞本中的一张筭图(第77问。[3],315页)

我们仔细分析了赵钞本81问的文本结构,发现术、草、图三者的关系十分复杂。总计45问有筭图,其中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页)

甲段:“凡奇数得一者,便为乘率。令左下衍是三,乃与本母四,用大衍求一术入之。列衍奇三于右上,定母于右下,立天元一于左上,空其左下。”此段文本给出了大衍求一术的布算,即右上、下与左上、下分别布置4个数:3、4、1、0。

乙段筭图中间4个数符合甲段的布算。但是乙图右行最上0、最下1是无法从甲段中得到说明的*对大衍求一术的分析中,共涉及6个位置。中间4个,依据秦九韶自己的说法,笔者依次称为“左上”(即天元)、“左下”(即归数)、“右上”(即衍奇)、“右下”(即定母)。右行最上下是商的位置,笔者称之为“右行最上”和“右行最下”。。

丙段:“先以右上少数三除右下多数四,得一为商。以商一乘左上天元一,只得一,归左下。其右下余一。”此段第一句话给出乙图中右行最上0和最下1的来源。这就是说,乙图的6个数中,中间4个是由甲文解释的,右行最上下2个则是由丙文的第一句话解释的。因此,乙图动态连接甲、丙文。丙段后两句话,给出了中间4个数的变化:右上3、右下1、左上1、左下1。

丁段筭图中间4个数符合丙段描述。由此可知,丙段实际可以分成两部分,第一部分解释乙图右行最上下2个数,第二部分解释丁图中间4个数。因此,丙文动态连接了乙图和丁图。同样,丁图右行最上2、最下0,是无法从丙段获得解释的。

戊段:“次以右下少数一除右上多数三,须使右上必奇一筭乃止。遂于右行最上商二,以除右衍必奇一。乃以上商命右下定,余一。除之,右衍余一。”此段亦先给出丁图右行最上下2个数的解释。这样,我们知道丁图与乙图一样,其中间4个数,由其前一段文本丙的后半部解释;而其右行最上下2个数,则由其后一段文本戊的前半部解释。故丁图亦动态连接了丙文和戊文。戊文的后半段,给出了中间4个数的变化:左右上下都是1。

己段筭图中间4个数符合戊段后半部的解释。这就是说戊文也和丙文一样,前半部分解释其前一张图丁的中间4个数,后半部分解释其后一张图己的右行最上下2个数。因此,戊文亦动态连接了丁图和己图。因为右上已经是1了,所以已图的右行最上下无需进一步解释。己图的右行最上2与丁图同,最下则去除了“○”。

庚段:“次以商二与左下归数相乘,得二。加入左上天元一内,共得三。”此段是基于己图给出计算,得到左上天元为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 大衍求一术与方程术

秦九韶在“治历演纪”问中说:“却与闰缩、朔率列号甲乙丙丁四位。乘除削减,谓之方程。……非特置筭繁名,初无定法可传。甚是惑误后学,易失去古人之意。”([3],130页)根据秦氏在此题图草,此处方程与大衍求一术有关。

秦九韶在序言[31]中谈到了方程与大衍求一术的看法:

今数术之书尚三十余家。天象、历度谓之缀术;太乙、壬、甲谓之三式,皆曰内筭,言其秘也。《九章》所载即《周官》九数;系于方圆者为叀术,皆曰外筭,对内而言也。其用相通,不可歧二。独大衍法不载《九章》,未有能推之者,历家演法颇用之,以为方程者,误也。([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)八月,秦氏任建康府通判;同年十一月,其母逝世,解任回湖州为母守孝*“秦九韶,通直郎。淳祐四年八月任,十一月丁母忧解任。”参见文献[39]。。正是在此期间,秦氏完成了《数书九章》。

依据时人陈振孙的记载,可知《数书九章》原名《数术》,被归入“历象类”*陈振孙记载:“《数书大略》九卷,鲁郡秦九韶道古撰。前世算术,自《汉志》皆属历谱家。要之数居六艺之一,故今《解题》列之杂艺类,惟《周髀》为盖天遗书,以为历象之冠。此书本名《数术》,而前二卷大衍、天时二类于治历测天为详。故亦置之于此。秦博学多能,尤遂历法。凡近世诸历,皆传于秦。所言得失,亦悉著其语云。”参见文献[40]。。事实上,该书大衍、天时两类确实包含了大量的历法计算*严敦杰对比了《数书九章》与《宋史》中对于开禧历的记述,两者基本一致,参见文献[36]。。开禧历(1207~1251年行用)到淳祐年间已经十分不精确。淳祐四年和八年宋廷分别两次征召民间人士参与改历*《宋史》有两条记载,“淳祐四年,兼崇政殿说书韩详请召山林布衣造新历,从之”,以及“八年……请召四方之通历算者至都,使历官学焉。”参见文献[41]。。秦氏在该书完成的第二年,将之进于朝廷*时人周密记载:“以历学荐于朝,得对,有奏稿及所述《数学大略》。”参见文献[42]。秦九韶所进的书稿既可能是《数书九章》的全本,也可能是其中的大衍、天时两类。根据现有史料,还无法确定。。因此,秦氏著书的部分原因是参与改历。

秦九韶把数术分为内算和外算两部分,与历法、《周易》有关的大衍总数术属于内算,而大衍求一术应为区别于方程的独立数学内容。基于“其用相通,不可歧二”的原则,秦氏有理由公开揭示大衍术。可是,秦氏为何需要这个理由?我们知道上元的推算从汉代就开始了,但是这种算法直到秦九韶之前,都没有完整的记载。这说明对于上元的算法存在着“算而不书”的习惯。形成这一习惯的原因主要来源于两方面:第一,早期王朝的历法推算与其正统性有关,因而往往被官方垄断[43—45]。第二,一般而言,数学经典只记载算法,而不会记载具体的筹算操作;在天文历算领域,则往往只记载数据,而没有算法和筹算操作*笔者认为“算而不书”是中国古代天文历算的计算文化,指在中国历法计算中,往往只记载具体的数字和结果(如历代正史“律历志”),而不记录算法及其筹算过程。实际上,《九章算术》等传统数学著作中,虽然筹算过程也不被记载于内,但是有文字描述的算法。5世纪左右,《孙子筭经》最先记载了筹算运作的原则。今人对于筹算运作的了解恰恰来源于秦九韶《数书九章》的筭图。。秦氏对于上元积年的推算,应是早年随太史习得。因此,为了打破“算而不书”的习惯来记述大衍术,秦氏确实需要一个正当的理由*不过,秦九韶的策略很可能并没有奏效。一方面,通过对比《宋史·律历志》记载的成天历(开禧历之后,1271~1276年行用)与《数书九章》,可知该历实际并未受到秦九韶的影响。另一方面,时人与后人对秦九韶有许多批评。时人刘克庄说秦九韶“盖其人不孝、不义、不仁、不廉之事,具载丹书。”参见文献[46]。周密则说秦九韶“性喜奢好大,嗜进某身。”参见文献[42]。秦氏打破历算“算而不书”的习惯可能是导致他们批评的部分原因。清代四库馆臣则说《数书九章》:“其中如大衍类‘蓍挂发微’欲以新术改《周易》,揲蓍之法殊乖古义。”参见文献[5],324页。。

秦九韶在自序中谈到《数书九章》的成书过程:在淳祐四年之前,他在工作中积累了许多算题,弃掉可惜,于是厘为九类,立术、补草用图,著成该书*秦九韶云:“九韶愚陋,不闲于艺。早岁侍亲中都,因得访习于太史。又尝从隐君子受数学。际时狄患,历岁遥塞,不自意全于矢石间,尝险罹忧。荏苒十禩,心槁气落,信知夫物莫不有数也。乃肆意其间,旁诹方能,探索杳渺,粗若有所得焉。所谓通神明,顺性命,固肤末于见。若其小者,窃尝设为问答,以拟于用。积多而惜其弃。因取八十一题,厘为九类。立术具草,间以图发之。恐或可备博学多识君子之余观。”参见文献[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辑. 上海: 上海科学技术出版社, 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