第六十一章 秦九韶
第一节 经历和为人
秦九韶(1202—约1261),字道古,普州安岳(今属四川)人,祖籍鲁郡。父秦季槱,字宏父,绍熙四年(1193)进士。嘉定十二年(1219),秦季槱任巴州(今四川巴中)守。是年三月,兴元(今陕西汉中)军士张福、莫简等发动兵变,入川后夺取利州(今广元)、阆州(今阆中)、果州(今南充)、遂宁(今遂宁)和普州(今安岳),并进犯巴州。秦季槱弃城而走。朝廷命沔州都统张威引兵镇压。年仅18岁的秦九韶“在乡里为义兵首”,参加张威军的平乱之战。不久,秦季槱携全家辗转抵达当时的京师临安(今杭州)。嘉定十五年(1222),秦季槱任工部郎中,十七年,除秘书少监。宝庆元年(1225)正月,兼任国史院编修官、实录院检讨官。工部掌管营建,而秘书省则掌管图书,其下属机构设有太史局。因此,天资聪颖、求知若渴的秦九韶有机会阅读大量典籍,熟悉建筑、修造、治河等方面的土木工程知识,并向他父亲的属官中负责测验天文、考定历法的学者们学习天文历法知识。他后来在《数书九章》序中说“早岁侍亲中都,因得访习于太史”,即指这段时间的事。秦九韶又曾向“隐君子”学习数学。他还向著名词人李刘学习骈骊诗词。通过这一时期的学习,秦九韶的学识日趋渊博。周密在《癸辛杂识续集》中称他“性极机巧,星象、音律、算术,以至营造等事,无不精究”,“游戏、毬、马、弓、剑,莫不能知”。
宝庆元年(1225)六月,秦季槱被任命为潼川(今四川三台)知府,七月赴任。秦九韶于是随父回到四川。次年正月十二日,秦氏父子来到涪州(今重庆涪陵),与涪州守李踽及其两个儿子同游,观赏长江石鱼,并刻石题名,后为姚觐光收入《涪州石鱼文字所见录》,成为一则重要史料。
在潼川,秦九韶曾当过县尉。这期间,李刘曾邀请他到国史院校勘书籍文献,但未成行。
端平三年(1236),元兵攻入四川,嘉陵江流域兵祸不断,秦九韶不得不经常参与军事活动,饱受战争之苦。他后来在《数书九章》序中回忆道:“际时狄患,历岁遥塞,不自意全于矢石间,尝险罹忧,荏苒十祀,心槁气落。”数年后,秦九韶被迫再次离川,往东南避难。先后担任过蕲州(今湖北蕲春)通判及和州(安徽和县)守,最后定居湖州(今属浙江)。有史料记载,秦九韶是个自私、专横和唯利是图的人,抑或战争改变了他的天性。与他同时代的刘克庄在《缴秦九韶知临江军奏状》中说他“倅蕲妄作,几激军变;守和贩鹾,抑卖于民”。周密说他“既出东南,多交豪富”;在湖州的住家,建堂于苕水之上,“极其宏敞,后为列屋以处秀姬,管弦、制乐、度曲,皆极精妙,用度无算”。非利用职权中饱私囊者,岂能如此奢华?
淳祐四年(1244)八月,秦九韶以通直郎为建康府(今江苏南京)通判,十一月,因母丧离任,回湖州守孝。在此期间,秦九韶可谓“无丝竹之乱耳,无案牍之劳形”,专心学问,埋头著书。淳祐七年(1247)九月,完成数学名著《数书九章》。由于在天文历法上的造诣,次年他被推荐到朝廷,受到皇帝召见,因而得以阐述自己的见解,并呈上他的奏稿及《数学大略》(即《数书九章》)书稿。
孝满书成后的秦九韶不甘寂寞,又开始向往功名利禄。淳祐十年(1250),他往投吴潜幕。吴潜(1196—1262),号履斋,南宋重臣,主战派首领。秦九韶与吴潜很有交情,他在湖州的居家即从吴处得到的地皮。宝祐二年(1254),秦九韶到建康,任沿江制置司参议,但不久去职,回湖州家居。此后,他去扬州攀附当朝权臣贾似道。宝祐六年(1258)正月,贾似道荐秦九韶于广帅李曾伯,时逢琼州守阙,于是李曾伯便命其暂任琼州守,但三个月后被免职。刘克庄说秦九韶“到郡(琼州)仅百日许,郡人莫不厌其贪暴,作卒哭歌以快其去”。周密则说他“至郡数月,罢归,所携甚富”。离琼州回湖州后,秦九韶又投奔吴潜,得荐,开庆元年(1259)任司农寺丞,因不满贾似道专权,被罢。景定元年(1260),又任命为知临江军(今江西清江),再次遭罢。不久,吴潜罢相,被贬潮州。秦九韶受到株连,也贬梅州(今广东梅县)做地方官,他“力政不辍”。约在景定二年(1261),病卒于任所,年60岁。
第二节 对数学的贡献:《数书九章》
秦九韶恶劣的个人品行,与杰出的数学才能是不相称的。因此有人因他的数学成就而为其个人品行辩护,如清代数学家焦循在《天元一释》卷下说:“秦九韶为周密所丑诋,至于不堪,而其书亦晦而复显。密以填词小说之才,实学非其所知。即所称与吴履斋交稔,为贾相窜于梅州,力政不辍,则秦之为人亦瑰奇有用之才也。”与此同时,也有人因他的恶劣人品而贬低其数学成就,如余嘉锡《南宋算学家秦九韶事迹考》中说他“虽能治天算,多技能,不过小人之才耳,何足道哉!”对秦九韶,也有较客观地评价:“有才有学的人未必有德,我们读《数书九章》,不能不表扬秦九韶在数学方面的贡献,但是论他的为人,也应符合当时的历史实际。”①《数书九章》,是秦九韶勤奋学习、苦心钻研和多年积累的数学成就的结晶,是堪与数学名著《九章算术》相媲美的。这部著作,南宋时称为《数学大略》或《数术大略》,明《永乐大典》和清《四库全书》皆题称《数学九章》。明季常熟赵氏脉望馆藏有另一抄本,万历时赵琦美为其撰写跋文始称《数书九章》。后来清道光时按赵抄本校刻的《宜稼堂丛书》本流传较广,遂成为现今的通称。该书共18卷,81题,分为9类,每类9题,主要内容是:一、大衍类:一次同余组的解法;二、天时类:历法推算、雨雪量的计算;三、田域类:土地面积;四、测望类:勾股、重差等测量问题;五、赋役类:田赋、户税;六、钱谷类:征购米粮及仓储容积;七、营建类:建筑工程;八、军旅类:兵营布置和军需供应;九、市易类:商品交易和利息计算。
每题答案之后都有“术”说明解题方法,“术”后有“草”说明演算步骤,有的题目还画有图。《数书九章》中的两项最重要的成就是正负开方术(高次方程数值解法)和大衍求一术(一次同余组解法)。
在数学发展史上,古典代数学的中心课题是方程论。中国古代的方程论,不论是现代意义下的开方,还是解一般的高于二次的一元方程都被称为开方。从《周髀算经》、《九章算术》,到5世纪的祖冲之和7世纪的王孝通,已经解决了开平方、开立方,以及二次三项方程和正系数三次方程求正根问题。11世纪,贾宪又创造了一种新的开方法——增乘开方法,通过随乘随加导出减根方程,逐步求出正系数高次方程的正根。12世纪,数学家刘益提出“正负开方术”,并突破了方程系数全都为正的限制。但刘益的方法并不是增乘开方法。秦九韶在前人工作的基础上,把以增乘开方法为主体的高次方程数值解法发展到十分完备的程度。他的方程系数可正可负,可为分数,也可为小数,在有理数范围内没有限制,但规定常数项总为负。亦即解决了形如下列的数字方程求解问题:a0xn+a1xn-1+a2xn-2+…+an-1x+an=0其中a0≠0, an< 0, ai∈Q(i= 0,1,…,n)。《数书九章》81个问题中,用方程来解的有21个,共列出了26个方程,其中二次方程20个,三次1个,四次4个,十次1个,其解法大都有详草。从其随乘随加的具体运算过程可以看出,秦九韶提出的高次方程数值解法可以毫不困难地转化为计算机程序。秦九韶还讨论了“投胎”、“换骨”、“玲珑”、“同体连枝”等特殊情形,并将其广泛应用于面积、体积、测量等方面的实际问题。
在西方,关于高次方程数值解法的探讨,经历了漫长的历史过程,直到1840年,意大利数学家鲁菲尼(P.Ruffini,1765—1822)才创立了一种逐次近似法解决数字高次方程无理根的近似值问题,而1819年英国数学家霍纳(W.G.Horner,1786—1837)在英国皇家学会发表的论文“用连续逼近法解任何次数字方程的新方法”中,才提出与增乘开方法演算步骤相同的算法,后被称为“霍纳法”。秦九韶的成就要比鲁菲尼和霍纳早五六百年。
秦九韶对于一次同余组解法的理论概括,是他在数学史上的另一项杰出贡献。一次同余式问题的解法是适应天文学家推算上元积年的需要而产生的。中国古代天文学家假设在远古时代有一年的冬至、甲子日零时和日月合朔在同一时刻。该时刻即称为上元,从上元到本年经过的年数称为上元积年。在既知本年的冬至时刻和十一月平朔时刻的条件下推算这一年的上元积年是一个一次同余问题。设A为回归年(从冬至到冬至)日数,R1为本年冬至距其前一个甲子日零时的日数,B为一朔望月(从平朔到平朔)的日数,R2为冬至距前一个平朔的日数,则上元积年x满足下列一次同余组Ax=R1(mod 60)≡R2(mod B)。
3世纪后,中国各家历法都有一个特定的上元积年,但各个时期的天文学家尽管掌握了上元积年的推算方法,却没有明确提出系统的和完整的一次同余理论。
最早见于记载的一次同余问题是《孙子算经》中的“物不知数”问题:“今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何。”这相当于求解一次同余组x≡2(mod3)≡3(mod 5)≡2(mod 7)。
《孙子算经》给出最小正解:x=2×70+3×21+2×15-2×105=23,但未说明其理论根据。秦九韶青年时在杭州“访习于太史”,掌握了上元积年的推算方法。他经过深入研究,把上元积年算法与孙子问题的解法联系起来,在《数书九章》中明确给出了一次同余组的一般解法。
设m1,m2,…,mn两两互素,M=m1·m2·…·mn,Mi=M/mi(i=1,2,3,…,n)。若有正整数k1,k2,…,kn满足kiMi≡1(modmi),i=1,2,3,…,n,则一次同余组x≡ri(mod mi)≡r2(modm2)≡…
的解为
这就是西方文献中所称的“中国剩余定理”。秦九韶把mi、M、Mi和ki分别称作定数、衍母、衍数和乘率。
显然,一次同余组解法的关键是求乘率ki。因为同余式kiMi≡1(modmi)等价于kigi≡1(modmi),其中Mi≡gi(modmi),0<gi<mi,所以这一问题又归结为求解同余式ax≡1(modb),(a,b)=1,a<b秦九韶提出的著名的“大衍求一术”,就是求解(1)的方法(今亦泛指整个一次同余组的解法)。《数书九章》卷三“治历演纪”题,详细记述了南宋开禧历上元积年的推算过程。从大衍求一术的这一具体应用可以清楚看出,秦九韶的算法是完全正确和相当严密的。并且,秦九韶的大衍求一术与他的高次方程数值解法一样,简洁、明确、带有很强的机械性,其程序亦可毫无困难地转化为算法语言,用计算机来实现。
另外还值得一提的是,《数书九章》卷一、卷二大衍类共有9个一次同余组问题,其中只有“余米推数”题(三个模数为19、17、12)可直接应用“中国剩余定理”来解,其余诸题所给模数或带有小数,或带有分数,或为不两两互素的整数,需要进行适当的变换。带有小数和分数的模易于化为整数模。但由于中国古代传统数学中没有素数概念,因而秦九韶不可能用素因数分解的方法来化不两两互素的模为两两互素的模。可是他所设计的一些算法,如“两两连环求等,约奇弗约偶(或约得五,而彼有十,乃约偶弗约奇)”等,不仅较为成功地解决了这一难题,而且在实际计算上比素因数分解法更具优越性。因此,有些学者誉称其为没有素数的素数论。
在西方,最早接触一次同余组的是意大利数学家斐波那契(Fibonacci,约1170—1250),他在《算盘书》(1202)中给出了两个一次同余问题,但没有一般解法。直到18—19世纪,瑞士数学家欧拉(Euler,1707—1783)和德国数学家高斯(C.F.Gauss,1777—1855)才对一次同余组进行深入研究,重新获得与“中国剩余定理”相同的定理,并对模数两两互素的情形给出严格证明。1852年,英国传教士、汉学家伟烈亚力(A.Wylie,1815—1887)发表《中国数学科学札记》,其中介绍了大衍求一术。从1856年到1876年,德国人马蒂生(Martthiessen,1830—1906)等西方学者又多次指出大衍求一术原理与高斯方法的一致性,从而更加引起了欧洲学者的瞩目。德国数学史家康托(M.Cantor,1829—1920)高度评价了大衍求一术,他称赞发现这一算法的中国数学家是“最幸运的天才”。比利时东方学家李倍始(U.Libbrecht)在《13世纪的中国数学》(ChineseMathematics in theThirteenth Century,1973)一书中对从《孙子算经》到19世纪末斯提尔吉斯共15个有代表性的解决同余组的人或著作作了比较。他按工作质量所排列的名次是:斯提尔吉斯(1890),欧拉(1743),高斯(1801),秦九韶(1247),贝维立基(1669),哥廷根手稿(约1550),休顿(1657),慕尼黑手稿(约1450),斐波那契(1202),杨辉(1275),《孙子算经》(约400),阿古洛斯(约1350),程大位(1592),严恭(1372),玉山若干(约1460)。秦九韶名列第四。
《数书九章》除了正负开方术和大衍求一术这两项重要成就外,还有不少其他方面的成就。如在代数学方面,改进了线性方程组的解法,普遍应用互乘相消法代替传统的直除法;在几何学方面,提出已知三角形三边之长求其面积的等价于海伦公式的“三斜求积术”:
将《九章算术》与《海岛算经》中的勾股测望之术发扬光大,等等。《数书九章》的内容非常丰富,从中我们不仅可以找到数学和天文历法乃至雨雪量等方面的珍贵资料,而且还可以了解到南宋时期户口增长、耕地扩展、赋税、利贷、度量衡以及货币流通、海外贸易等社会经济领域的真实情况。
如果说《九章算术》标志着中国古代数学理论的形成,那么《数书九章》则标志着中国古代数学之顶峰,其高次方程数值解法以及一次同余组解法亦代表了中世纪世界数学发展的主流与最高水平。美国科学史家萨顿(Sarton,1884—1956)因此称秦九韶是“他那个民族、他那个时代,并且确实也是所有时代最伟大的数学家之一”。
①钱宝琮:《秦九韶〈数书九章〉研究》,载钱宝琮等著《宋元数学史论文集》,科学出版社1966年版,第62页。
第一节 经历和为人
秦九韶(1202—约1261),字道古,普州安岳(今属四川)人,祖籍鲁郡。父秦季槱,字宏父,绍熙四年(1193)进士。嘉定十二年(1219),秦季槱任巴州(今四川巴中)守。是年三月,兴元(今陕西汉中)军士张福、莫简等发动兵变,入川后夺取利州(今广元)、阆州(今阆中)、果州(今南充)、遂宁(今遂宁)和普州(今安岳),并进犯巴州。秦季槱弃城而走。朝廷命沔州都统张威引兵镇压。年仅18岁的秦九韶“在乡里为义兵首”,参加张威军的平乱之战。不久,秦季槱携全家辗转抵达当时的京师临安(今杭州)。嘉定十五年(1222),秦季槱任工部郎中,十七年,除秘书少监。宝庆元年(1225)正月,兼任国史院编修官、实录院检讨官。工部掌管营建,而秘书省则掌管图书,其下属机构设有太史局。因此,天资聪颖、求知若渴的秦九韶有机会阅读大量典籍,熟悉建筑、修造、治河等方面的土木工程知识,并向他父亲的属官中负责测验天文、考定历法的学者们学习天文历法知识。他后来在《数书九章》序中说“早岁侍亲中都,因得访习于太史”,即指这段时间的事。秦九韶又曾向“隐君子”学习数学。他还向著名词人李刘学习骈骊诗词。通过这一时期的学习,秦九韶的学识日趋渊博。周密在《癸辛杂识续集》中称他“性极机巧,星象、音律、算术,以至营造等事,无不精究”,“游戏、毬、马、弓、剑,莫不能知”。
宝庆元年(1225)六月,秦季槱被任命为潼川(今四川三台)知府,七月赴任。秦九韶于是随父回到四川。次年正月十二日,秦氏父子来到涪州(今重庆涪陵),与涪州守李踽及其两个儿子同游,观赏长江石鱼,并刻石题名,后为姚觐光收入《涪州石鱼文字所见录》,成为一则重要史料。
在潼川,秦九韶曾当过县尉。这期间,李刘曾邀请他到国史院校勘书籍文献,但未成行。
端平三年(1236),元兵攻入四川,嘉陵江流域兵祸不断,秦九韶不得不经常参与军事活动,饱受战争之苦。他后来在《数书九章》序中回忆道:“际时狄患,历岁遥塞,不自意全于矢石间,尝险罹忧,荏苒十祀,心槁气落。”数年后,秦九韶被迫再次离川,往东南避难。先后担任过蕲州(今湖北蕲春)通判及和州(安徽和县)守,最后定居湖州(今属浙江)。有史料记载,秦九韶是个自私、专横和唯利是图的人,抑或战争改变了他的天性。与他同时代的刘克庄在《缴秦九韶知临江军奏状》中说他“倅蕲妄作,几激军变;守和贩鹾,抑卖于民”。周密说他“既出东南,多交豪富”;在湖州的住家,建堂于苕水之上,“极其宏敞,后为列屋以处秀姬,管弦、制乐、度曲,皆极精妙,用度无算”。非利用职权中饱私囊者,岂能如此奢华?
淳祐四年(1244)八月,秦九韶以通直郎为建康府(今江苏南京)通判,十一月,因母丧离任,回湖州守孝。在此期间,秦九韶可谓“无丝竹之乱耳,无案牍之劳形”,专心学问,埋头著书。淳祐七年(1247)九月,完成数学名著《数书九章》。由于在天文历法上的造诣,次年他被推荐到朝廷,受到皇帝召见,因而得以阐述自己的见解,并呈上他的奏稿及《数学大略》(即《数书九章》)书稿。
孝满书成后的秦九韶不甘寂寞,又开始向往功名利禄。淳祐十年(1250),他往投吴潜幕。吴潜(1196—1262),号履斋,南宋重臣,主战派首领。秦九韶与吴潜很有交情,他在湖州的居家即从吴处得到的地皮。宝祐二年(1254),秦九韶到建康,任沿江制置司参议,但不久去职,回湖州家居。此后,他去扬州攀附当朝权臣贾似道。宝祐六年(1258)正月,贾似道荐秦九韶于广帅李曾伯,时逢琼州守阙,于是李曾伯便命其暂任琼州守,但三个月后被免职。刘克庄说秦九韶“到郡(琼州)仅百日许,郡人莫不厌其贪暴,作卒哭歌以快其去”。周密则说他“至郡数月,罢归,所携甚富”。离琼州回湖州后,秦九韶又投奔吴潜,得荐,开庆元年(1259)任司农寺丞,因不满贾似道专权,被罢。景定元年(1260),又任命为知临江军(今江西清江),再次遭罢。不久,吴潜罢相,被贬潮州。秦九韶受到株连,也贬梅州(今广东梅县)做地方官,他“力政不辍”。约在景定二年(1261),病卒于任所,年60岁。
第二节 对数学的贡献:《数书九章》
秦九韶恶劣的个人品行,与杰出的数学才能是不相称的。因此有人因他的数学成就而为其个人品行辩护,如清代数学家焦循在《天元一释》卷下说:“秦九韶为周密所丑诋,至于不堪,而其书亦晦而复显。密以填词小说之才,实学非其所知。即所称与吴履斋交稔,为贾相窜于梅州,力政不辍,则秦之为人亦瑰奇有用之才也。”与此同时,也有人因他的恶劣人品而贬低其数学成就,如余嘉锡《南宋算学家秦九韶事迹考》中说他“虽能治天算,多技能,不过小人之才耳,何足道哉!”对秦九韶,也有较客观地评价:“有才有学的人未必有德,我们读《数书九章》,不能不表扬秦九韶在数学方面的贡献,但是论他的为人,也应符合当时的历史实际。”①《数书九章》,是秦九韶勤奋学习、苦心钻研和多年积累的数学成就的结晶,是堪与数学名著《九章算术》相媲美的。这部著作,南宋时称为《数学大略》或《数术大略》,明《永乐大典》和清《四库全书》皆题称《数学九章》。明季常熟赵氏脉望馆藏有另一抄本,万历时赵琦美为其撰写跋文始称《数书九章》。后来清道光时按赵抄本校刻的《宜稼堂丛书》本流传较广,遂成为现今的通称。该书共18卷,81题,分为9类,每类9题,主要内容是:一、大衍类:一次同余组的解法;二、天时类:历法推算、雨雪量的计算;三、田域类:土地面积;四、测望类:勾股、重差等测量问题;五、赋役类:田赋、户税;六、钱谷类:征购米粮及仓储容积;七、营建类:建筑工程;八、军旅类:兵营布置和军需供应;九、市易类:商品交易和利息计算。
每题答案之后都有“术”说明解题方法,“术”后有“草”说明演算步骤,有的题目还画有图。《数书九章》中的两项最重要的成就是正负开方术(高次方程数值解法)和大衍求一术(一次同余组解法)。
在数学发展史上,古典代数学的中心课题是方程论。中国古代的方程论,不论是现代意义下的开方,还是解一般的高于二次的一元方程都被称为开方。从《周髀算经》、《九章算术》,到5世纪的祖冲之和7世纪的王孝通,已经解决了开平方、开立方,以及二次三项方程和正系数三次方程求正根问题。11世纪,贾宪又创造了一种新的开方法——增乘开方法,通过随乘随加导出减根方程,逐步求出正系数高次方程的正根。12世纪,数学家刘益提出“正负开方术”,并突破了方程系数全都为正的限制。但刘益的方法并不是增乘开方法。秦九韶在前人工作的基础上,把以增乘开方法为主体的高次方程数值解法发展到十分完备的程度。他的方程系数可正可负,可为分数,也可为小数,在有理数范围内没有限制,但规定常数项总为负。亦即解决了形如下列的数字方程求解问题:a0xn+a1xn-1+a2xn-2+…+an-1x+an=0其中a0≠0, an< 0, ai∈Q(i= 0,1,…,n)。《数书九章》81个问题中,用方程来解的有21个,共列出了26个方程,其中二次方程20个,三次1个,四次4个,十次1个,其解法大都有详草。从其随乘随加的具体运算过程可以看出,秦九韶提出的高次方程数值解法可以毫不困难地转化为计算机程序。秦九韶还讨论了“投胎”、“换骨”、“玲珑”、“同体连枝”等特殊情形,并将其广泛应用于面积、体积、测量等方面的实际问题。
在西方,关于高次方程数值解法的探讨,经历了漫长的历史过程,直到1840年,意大利数学家鲁菲尼(P.Ruffini,1765—1822)才创立了一种逐次近似法解决数字高次方程无理根的近似值问题,而1819年英国数学家霍纳(W.G.Horner,1786—1837)在英国皇家学会发表的论文“用连续逼近法解任何次数字方程的新方法”中,才提出与增乘开方法演算步骤相同的算法,后被称为“霍纳法”。秦九韶的成就要比鲁菲尼和霍纳早五六百年。
秦九韶对于一次同余组解法的理论概括,是他在数学史上的另一项杰出贡献。一次同余式问题的解法是适应天文学家推算上元积年的需要而产生的。中国古代天文学家假设在远古时代有一年的冬至、甲子日零时和日月合朔在同一时刻。该时刻即称为上元,从上元到本年经过的年数称为上元积年。在既知本年的冬至时刻和十一月平朔时刻的条件下推算这一年的上元积年是一个一次同余问题。设A为回归年(从冬至到冬至)日数,R1为本年冬至距其前一个甲子日零时的日数,B为一朔望月(从平朔到平朔)的日数,R2为冬至距前一个平朔的日数,则上元积年x满足下列一次同余组Ax=R1(mod 60)≡R2(mod B)。
3世纪后,中国各家历法都有一个特定的上元积年,但各个时期的天文学家尽管掌握了上元积年的推算方法,却没有明确提出系统的和完整的一次同余理论。
最早见于记载的一次同余问题是《孙子算经》中的“物不知数”问题:“今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何。”这相当于求解一次同余组x≡2(mod3)≡3(mod 5)≡2(mod 7)。
《孙子算经》给出最小正解:x=2×70+3×21+2×15-2×105=23,但未说明其理论根据。秦九韶青年时在杭州“访习于太史”,掌握了上元积年的推算方法。他经过深入研究,把上元积年算法与孙子问题的解法联系起来,在《数书九章》中明确给出了一次同余组的一般解法。
设m1,m2,…,mn两两互素,M=m1·m2·…·mn,Mi=M/mi(i=1,2,3,…,n)。若有正整数k1,k2,…,kn满足kiMi≡1(modmi),i=1,2,3,…,n,则一次同余组x≡ri(mod mi)≡r2(modm2)≡…
的解为
这就是西方文献中所称的“中国剩余定理”。秦九韶把mi、M、Mi和ki分别称作定数、衍母、衍数和乘率。
显然,一次同余组解法的关键是求乘率ki。因为同余式kiMi≡1(modmi)等价于kigi≡1(modmi),其中Mi≡gi(modmi),0<gi<mi,所以这一问题又归结为求解同余式ax≡1(modb),(a,b)=1,a<b秦九韶提出的著名的“大衍求一术”,就是求解(1)的方法(今亦泛指整个一次同余组的解法)。《数书九章》卷三“治历演纪”题,详细记述了南宋开禧历上元积年的推算过程。从大衍求一术的这一具体应用可以清楚看出,秦九韶的算法是完全正确和相当严密的。并且,秦九韶的大衍求一术与他的高次方程数值解法一样,简洁、明确、带有很强的机械性,其程序亦可毫无困难地转化为算法语言,用计算机来实现。
另外还值得一提的是,《数书九章》卷一、卷二大衍类共有9个一次同余组问题,其中只有“余米推数”题(三个模数为19、17、12)可直接应用“中国剩余定理”来解,其余诸题所给模数或带有小数,或带有分数,或为不两两互素的整数,需要进行适当的变换。带有小数和分数的模易于化为整数模。但由于中国古代传统数学中没有素数概念,因而秦九韶不可能用素因数分解的方法来化不两两互素的模为两两互素的模。可是他所设计的一些算法,如“两两连环求等,约奇弗约偶(或约得五,而彼有十,乃约偶弗约奇)”等,不仅较为成功地解决了这一难题,而且在实际计算上比素因数分解法更具优越性。因此,有些学者誉称其为没有素数的素数论。
在西方,最早接触一次同余组的是意大利数学家斐波那契(Fibonacci,约1170—1250),他在《算盘书》(1202)中给出了两个一次同余问题,但没有一般解法。直到18—19世纪,瑞士数学家欧拉(Euler,1707—1783)和德国数学家高斯(C.F.Gauss,1777—1855)才对一次同余组进行深入研究,重新获得与“中国剩余定理”相同的定理,并对模数两两互素的情形给出严格证明。1852年,英国传教士、汉学家伟烈亚力(A.Wylie,1815—1887)发表《中国数学科学札记》,其中介绍了大衍求一术。从1856年到1876年,德国人马蒂生(Martthiessen,1830—1906)等西方学者又多次指出大衍求一术原理与高斯方法的一致性,从而更加引起了欧洲学者的瞩目。德国数学史家康托(M.Cantor,1829—1920)高度评价了大衍求一术,他称赞发现这一算法的中国数学家是“最幸运的天才”。比利时东方学家李倍始(U.Libbrecht)在《13世纪的中国数学》(ChineseMathematics in theThirteenth Century,1973)一书中对从《孙子算经》到19世纪末斯提尔吉斯共15个有代表性的解决同余组的人或著作作了比较。他按工作质量所排列的名次是:斯提尔吉斯(1890),欧拉(1743),高斯(1801),秦九韶(1247),贝维立基(1669),哥廷根手稿(约1550),休顿(1657),慕尼黑手稿(约1450),斐波那契(1202),杨辉(1275),《孙子算经》(约400),阿古洛斯(约1350),程大位(1592),严恭(1372),玉山若干(约1460)。秦九韶名列第四。
《数书九章》除了正负开方术和大衍求一术这两项重要成就外,还有不少其他方面的成就。如在代数学方面,改进了线性方程组的解法,普遍应用互乘相消法代替传统的直除法;在几何学方面,提出已知三角形三边之长求其面积的等价于海伦公式的“三斜求积术”:
将《九章算术》与《海岛算经》中的勾股测望之术发扬光大,等等。《数书九章》的内容非常丰富,从中我们不仅可以找到数学和天文历法乃至雨雪量等方面的珍贵资料,而且还可以了解到南宋时期户口增长、耕地扩展、赋税、利贷、度量衡以及货币流通、海外贸易等社会经济领域的真实情况。
如果说《九章算术》标志着中国古代数学理论的形成,那么《数书九章》则标志着中国古代数学之顶峰,其高次方程数值解法以及一次同余组解法亦代表了中世纪世界数学发展的主流与最高水平。美国科学史家萨顿(Sarton,1884—1956)因此称秦九韶是“他那个民族、他那个时代,并且确实也是所有时代最伟大的数学家之一”。
①钱宝琮:《秦九韶〈数书九章〉研究》,载钱宝琮等著《宋元数学史论文集》,科学出版社1966年版,第62页。