来源:华盛论文咨询网时间:2019-05-17所属栏目:社科论文
摘 要:中国传统数学源远流长,筹算开方术是其中重要的成就之一。不过,以往学术界较少关注儒家的算法传统。在两汉经学争论的背景之下,汉儒包咸、马融等对《论语》“道千乘之国”的注解隐含了一个数学问题,且未述算法。梁代皇侃《论语义疏》以切割图形进行开方,与筹算方法不同,是为儒家开方算法之兴起。之后,唐代孔颖达、贾公彦,宋代邢昺、朱熹,元代许谦,清代刘宝楠等学者继续在儒学研究中探讨发展儒家开方算法。北周甄鸾《五经筭术》以筹算开方术解“道千乘之国”,唐代李淳风等注释《五经筭术》并立于学官,试图统一算法,未获成功。清中叶戴震整理古算书,给予《五经筭术》以正面评价。晚清以降,数学的专业性与独立性获得了前所未有的认可。因之,算家对“道千乘之国”的解释逐渐被接受,而儒家的算法传统则逐渐被遗忘。
关键词:《论语》 “道千乘之国” 开方算法 《五经筭术》 儒学
中国传统数学源远流长,取了许多世界级成就。由《九章筭术》筹算开方术发展而来的求高次方程数值解方法即是其中之一。学术界对之的探讨已经取了丰硕的成果。[1],[2] 近年来,笔者的研究揭示:唐代儒家在注疏经典中运用了与传统算学不尽相同的数学知识,尤其贾公彦(7世纪)、孔颖达(574-648)等利用图形进行开方,与筹算开方术差别很大;[3]-[7] 宋代邢昺(932-1010)、朱熹(1130-1200)则发展了儒家开方算法。[8] 陈志辉的研究说明7世纪唐代儒家的计算文化传统延续至18世纪清中叶。[9] 这些研究呈现了中国古代数学的多样性,启示我们重新思考儒家的算法传统及其与传统数学的关系。《论语》是儒家的重要经典之一,历代学者前赴后继对之进行了持续不断的注疏。笔者发现:由汉儒解经的争论中隐含了一个数学问题且未述算法,六朝儒家对《论语》“道千乘之国”的注疏中发展出了儒家的开方算法,与传统数学不同。之后,算家与儒家的开方算法互动关联却又独立演进,终至晚清之大变化。本文即以此视角梳理儒家开方术的历史演进,及其与传统数学的互动关系,以期推进学界对中国数学史之研究。
一、数学隐题:汉儒对《论语》“道千乘之国”之注解
《论语》卷一:“子曰:‘道①千乘之国,敬事而信,节用而爱人,使民以时。’”[10] 一般认为此段孔子是讲治理国家(即“千乘之国”)的办法。作为周代的分封制度的“千乘之国”,原意指拥有千辆战车的国家。汉朝建立之后,随着国家制度的改变,“千乘之国”便逐渐失去了其理解的现实语境。于是,汉儒解经须将之转化为实际的土地丈量单位。 “亩”、“田”、“里”是夏、商、周三代的土地面积单位,汉代沿袭之。[11] 东汉包咸(前7-65 年)注“道千乘之国”云:“道,治也。千乘之国者,百里之国也。古者井田,方里为井。十井为乘,百里之国适千乘也。”([10],p.2457)此段文字,梁代皇侃《论语义疏》略有不同,云:苞氏曰:“导,治也。千乘之国者,百里之国也。古者井田,方里为井,井十为乘。百里之国者,适千乘也。”[12] 包咸,《后汉书》卷79儒林列传有传,为《论语》章句,今已失传。魏代何晏《论语集解》保留了此段注解。包氏以周代井田制度解之,认为一井为一里之方,相当于1(平方)里;十井为十个一里之方,相当于10×1(平方)里,为一乘;百里之国,即100里(之平方)=10000×1(平方)里,相当于千乘。由此,千乘之国方百里。稍后的马融(79-166)亦注“道千乘之国” 云:“道谓为之政教。司马法:六尺为步,步百为亩,亩百为夫,夫三为屋,屋三为井,井十为通,通十为成,成出革车一乘。然则千乘之赋,其地千成,居地方三百一十六里畸。”([10],p.2457)此段文字,梁代皇侃《论语义疏》亦略有不同,云:马融曰:“导者,谓为之政教也。司马法:‘六尺为步,步百为亩,亩百为夫,夫三为屋,屋三为井,井十为通,通十为城,城出革车一乘。’然而千乘之赋,其地千城也。居地方三百一十六里奇。” ([12],pp.8-9)马融为东汉大儒,《后汉书》卷 60为马融列传,注《论语》亦失传。何晏引马融注。与包咸不同,马氏引“司马法”,由“六尺为步” 得出千乘之国方三百一十六里有畸,即316里多(之平方)。马融注实际隐含了一个数学问题,但他并没有给出具体的计算过程。本文将对此进行详尽的分析。何晏(约196-249)《论语集解》引包咸与马融的注疏,并云:“融依《周礼》,包依《王制》、《孟子》,义疑。故两存焉。”([10],p.2457)但是,何氏将马融注列于前,实际已经有所倾向。按何氏所云,包咸注据《礼记·王制》、《孟子》,而马融注据《周礼》。由此,两人注解之差异实则反映出东汉经学的“官学的争立”(即清人所谓“今古文之争”)。[13] 更重要的是,此处马融以数学为工具解经,试图表明《周礼》与《论语》的相容性。汉末,经学章句繁多,令时人感到厌烦而无所适从。郑玄(127-200)博览群经,兼习众说,融合古今文说,完成经学的统一。([13], pp.160-161)曾在马融门下的郑玄通《九章筭术》,其注经多引《九章》术语,例如其注《周礼》“㮚氏为量”引九章“粟米法”。[14] 郑玄又引郑众注给出了《周礼》的九数名目,即“九数:方田、粟米、差分、少广、商功、均输、方程、赢不足、旁要。今有重差、夕桀、句股也。”([14],p.731)由此可见,马融、郑玄等以《九章筭术》等数学著作来注解儒家经典,融合统一古今文说,是当时的一种风气。因而,钱宝琮认为“《九章算术》和许慎《说文解字》相仿,是东汉初年儒学的一部分,与儒家的传统思想有密切关系。”[15] 然而,马郑等汉儒的解释往往隐含有数学问题,而又不给出计算细节,留给后人进一步发挥的空间。
二、儒家开方算法之兴起:皇侃义疏
何晏《论语集解》给出了“千乘之国”的注解倾向。梁皇侃(488-545)《论语义疏》虽同时注解包咸注与马融注,但皇氏将马融置于前,实际也有倾向。皇氏对马融注的详解开创了儒家开方算法。皇氏疏云:“有地方十里者千,即是千城也,则容千乘也。”皇氏的用语“方某某里”指以某某里为边长的正方形。这就是说,方十里(边长10里的正方形,相当于100平方里)为“一乘”,千乘为一千个一乘,即相当于100×1000=100000 平方里。由此可知,马融的计算为√10000=316里有奇,而皇疏则给出了具体算法,按文意分作两段分析:方百里者,有方十里者百。若方三百里,三三为九,则有方百里者九。合成方十里者九百也。是方三百里,唯有九百乘也。若作千乘,犹少百乘。百乘是方百里者一也。([12], p.9)此段之中,皇侃指出方百里(即边长为100 里的正方形)等于100个方十里(即边长为10 里的正方形),即100乘。方三百里则等于9个方百里,等于900个方十里,即900乘。千乘之国为900乘加上100乘,即方三百里加上方一百里,见图1。于是,问题便转化为如何把三百里之方与一百里之方合成一个更大的方形(即边长为316里多)。今取方百里者一,而六分破之。每分得广十六里,长百里。引而接之,则长六百里,其广十六里也。今半断,各长三百里。设法特埤前三百里西南二边,是方三百十六里也。然西南角犹缺方十六里者一。方十六里者一,有方十里者二,又方一里者五十六里也。是少方一里者二百五十六里也。然则向割方百里者为六分,埤方三百里两边,犹余方一里者四百。今以方一里者二百五十六埤西南角,犹余方一里者一百四十四。又设法破而埤三百十六里两边,则每边不复得半里。故云“方三百十六里有奇”也。([12],pp.9-10)
皇侃继而将百里之方分作6份,每份为宽16 里、长100里的长方形,余宽4里、长100里的长方形,见图2。将6份首尾连结为一宽16里、长 600里的大长方形。把此大长方形一分为二,每部份为宽16里、长300里的中长方形。把这两个中长方形加在三百里之方的两边。这样形成一个缺一个角的边长为316里的大正方形。所缺角为 16里 ×16里的正方形,相当于2个方十里加上56 个方一里,总面积为256里。值得一提的是,此处皇侃用长度表示面积,这是中国古代常用的表示面积与体积的方法。即表示面积时,指一单位宽度的长方形,其长就是所给之长度;表示体积时,指一单位底面的长方体,其高就是所给之长度。王荣彬、李继闵最先对此有所讨论。[16] 杨涤非、邹大海近来发现军事活动中的另一种计量方式。[17] 笔者对此讨论也有所推进,指出其表示面积与体积时的单位宽度不固定,而取决于文本语境。([3],pp.133-134)由此,原先百里之方剩余400平方里,取出256平方里填满大正方形所缺角,见图3。尚余下144平方里,试图再切割加在316里之方的两边,每边的长度都小于半里。因此马融说“三百一十六里有奇”。
总之,皇侃的开方算法相当于是先把1000乘(100000平方里)看作300里之方与100里之方的和,而后逐渐切割100里之方,使之加在300里方之上以构建更大的正方形。这一算法凭借图形操作而不用算筹,计算思路、几何解释都与《九章筭术》、《孙子筭经》等算书所载的筹算开方术不同。何晏作《论语集解》,皇侃《论语义疏》是集解再集解的作品,体现了六朝人解经的风气。([13],p.191)魏晋以降,对《论语》“道千乘之国”马融注的再解释成为主流。前人论皇侃学术,多言受玄佛之影响。但此处却开儒家开方算法之先。皇侃疏实际违背了汉儒马融、郑玄等以传统数学解经的做法,展现了六朝经学的独特一面。晚清刘岳云(19世纪)《五经算术疏义》批评“皇侃不知算术,故周折如此”。[18] 但出人意料的是,这一做法由唐儒孔颖达对《礼记·投壶》、贾公彦对《周礼·考工记》的注疏中沿用发展,明确开方为把一长方形转化为正方形的图形操作,称为“方之”([4],pp.3-25、[6],pp.160-168)并继而经由宋儒邢昺、朱熹(1130-1200)等人发展,([8], pp.167-182)一直延续至清代,形成了独特的儒家开方算法传统。
三、算家与儒家:六至十四世纪诸家之注解
北周时期,甄鸾(6世纪)撰《五经筭术》,以传统数学解释儒家经典,亦收入《论语》“道千乘之国”问题。唐初,李淳风(602-670)与算学博士梁述、太学助教王真儒等注释包含《五经筭术》的十部算经,并立于学官。《五经筭术》之中,此题为“《论语》千乘之国法”,其问云: “子曰:道千乘之国。”注云:“司马法:六尺为步,步百为亩,亩百为夫,夫三为屋,物三为井,井十为通,通十为成。成出革车一乘。然则千乘之赋,其地千成也。”今有千乘之国,其地千成,计积九十亿步。问为方几何?荅曰:三百一十六里六十八步之六万二千五百七十六。术曰:置积步为实,开方除之,即得。按:千乘之国,其地千成。方十里,置一成地十里,以三百步乘之,得三千步。重张相乘,得九百万步。又以千成乘之,得积九十亿步。以开方除之,即得方数也。开方法曰:借一筭为下法。步之,常超一位,至万而止。置上商九万于实之上。又置九亿于实之下,下法之上,名曰方法。命上商九万,以除实毕。倍方法九亿,得十八亿。乃折之,方法一折,下法再折,名曰隅法。方、隅皆命上商四千,以除实毕。倍隅法,得八百万,上纵方法,得一亿八千八百万。乃折之,方法一折,下法再折。又置上商八百于上,以次前商之后,以除实毕。倍隅法,得十六万,上纵方法,得一千八百九十六万。乃折之,方法一折,下法再折。又置上商六十于上,以次前商之后。又置六百于方法之下,下法之商,名曰隅法。方、隅皆命上商六十,以除实毕。倍隅法,得一百千二百,上纵方法,得一百八十九万七千二百。乃折之,方法一折,下法再折。又置上商八于上,以次前商之后。又置八于方法之下,下法之上,名曰隅法。方、隅皆命上商八,以除实毕。倍隅法得一十六,上纵方法。下法一亦纵之,得一十八万九千七百三十七分 步 之 六 万 二 千 五 百 七 十 六。 以 里 法三 百 步 除 之, 得 三 百 一 十 六 里, 不 尽六 十 八 步。 即 得 方 三 百 一 十 六 里 六 十 八步一十八万九千七百三十七分步之六万二千五百七十六。[19]
晚清刘岳云认为:“自‘今有千乘之国’至‘开方除之即得’当是李淳风注误入正文。按上脱‘甄鸾’二字。”([18],p.18b)即认为上段的问、答、术都是李淳风等的注释,而其他部分则是甄鸾所撰。今传本《五经筭术》中李淳风等往往补充问题、答案和术文。李氏等也说“此《五经算》一部之中多无设问及术,直据本条,略陈大数而已。今并加正术及问,仍与旧数相符。其有汎说事由,不须术者,并依旧不加。”([19],p.376)因此,刘岳云的看法很可能符合实际。事实上,这种误置甄鸾按与李淳风等注释的情况也出现在《五经筭术》的另一问中。([7],pp.118-120)甄鸾按照1里 =300步的关系,把一乘(亦即一成)方十里(边长为10里的正方形)转化成方三千步(边长为3000步的正方形),面积则为九百万平方步。千乘之国则是九百万乘以1000,得到九十亿平方步。由此,甄鸾把原先√10000转化成√9000000000。甄氏由筹算开方术得:[20] 李淳风等注释按照数学著作的格式重构此问,提出“置积步为实,开方除之”的算法,继承了甄鸾的算法。由此可见,甄、李等人并未理会皇侃的算法,而径施之以筹算开方术。这在甄氏扩展数学应用的范围,李氏等注释十部算经的背景下是可以理解的。北宋邢昺注 疏《 论 语 》, 基 本 沿 用 了 皇 侃的算法,而未理会甄、李等人的算法。皇侃云: “ 方 十 六 里 者 一, 有 方 十 里 者 二, 又 方 一 里 者五十六里也。是少方一里者二百五十六里也。”即 1×162 =2×102 +56×12 。邢昺则直接说:“方十六里者一,为方一里者二百五十六。”这是他对皇侃算法的最大改动。邢氏说:“开方之法,方百里者一为方十里者百。”([10],p.2457)可见,其理解的开方并非筹算开方术,而是与单位面积间的换算有关。
南宋朱熹撰《四书章句集注》,其中《论语集注》并未收入邢昺等人算法。有人问:“因说“千乘之国” 疏云,方三百一十六里,有畸零,算不彻。朱子回答: “此等只要理会过,识得古人制度大意。如至细微,亦不必大段费力也。”[21] 显然,朱熹并不完全认可儒家传统的开方术,尽管其在晚年编撰的《仪礼经传通解》中对此实际有所发展。([8],pp.167- 182)元代许谦(1270-1337)《读论语丛说》谈到此问云:“所谓‘方三百十六里有畸者’,先直排三十成作一行,便是直三百里、横阔十里知。以如此之行横排三十行,便是方三百里,共计九百成。尚有一百成,却分为万井。于每行上添十六里,则东南两面共添六百个十六井,共计九千六百井。要取方,又于东南上有缺。却又用将方十六井去补教方,该二百五十六井。[十六令十六,计二百五十六]以一万井除去九千八百五十六井外,尚余一百四十四井。难以分为方。故曰‘有畸’。[若分开计一千二百九十六夫,亦分不开]”①[22] 按1 井 =1平方里、1夫 =3井、千乘 =10000井,许谦构造出方316里为9856井,与千乘差144井,逆向解释了千乘之国为三百一十六里有畸。
甄鸾、李淳风等试图将传统数学应用于儒家经典,恢复汉儒的理想做法,重建数学与儒学的紧密联系。从孔颖达、贾公彦等人的注疏看,这一努力未获成功。自此之后,儒家与算家的计算文化传统存在着明显分野。尽管隋唐以后算学立于学官,《九章筭术》、《五经筭术》等都是法定的数学教科书,北宋元丰七年(1084)秘书省刊刻了十部算经,大观三年(1109)颁布了“算学祀典”,贾宪(11世纪)开创了筹算的增乘开方法与立成释锁开方法,但是邢昺、朱熹、许谦等人的讨论却完全不涉及筹算开方术。这一方面这可能是因为他们不熟悉传统筹算数学,另一方面则反映出由于儒学的强势,宋代儒家自身的算法传统具有与算学分庭抗礼的强大生命力。
四、遗忘与统一:清代学者之探讨
明代以降,对《论语》“道千乘之国”开方问题的探讨沿着注疏《论语》与《五经筭术》两条路线演进,显示出儒家与算家的两种计算文化传统的持续存在。乾隆年间,编撰《四库全书》,戴震(1724-1777)从《永乐大典》辑出十部算经。他认为“是书不特为算家所不废,实足以发明经史,覈订疑义,于考证之学尤为有功焉。”[23] 给予《五经筭术》及甄鸾、李淳风等以正面的评价。但是之后,刘宝楠(1791-1855)《论语正义》“道千乘之国”却仍旧采皇侃之算法,[24] 延续了儒家的传统。此情况至晚清有所改变。潘维城(19世纪)《论语古注集笺》认为此题“开方之法,不可不讲。” 先云:“邢疏以中方三百方为方百里者,三三而九,则为方百里者九。又以方百里为六分埤西南两边,长阔者皆三百一十六,余边墙一百四十四里,不尽开也。”又云:“算术千乘之国,地千成方十里。置一成地十里以里三百步乘之,得三千步。重张相乘,得九万步。又以千成乘之,得积九十亿步。以开方除之,得数。以里三百步为法,除之,得三百一十六里不尽六十八步歙。”[25] 由此可知,潘氏同时采纳了邢昺与甄鸾的注疏,并以“算术” 称呼后者。
刘岳云在《五经算术疏义》中认为“此《论语集解》引马融说也。以百亩乘百步,得一万步。夫三乘之,得三万步。屋三乘之,得九万步。井十乘之,得九十万步。通十乘之,得九百万步。是一成之地,积九百万步。故知千成之地当积九十万万步也。有积求边合用开方除。故开方而得步数矣。”([18],19a-19b)即先沿用了甄鸾对此问的解释。然后,却引皇侃疏算法。继云:“皇侃不知算术,故周折如此。邢昺盗取皇侃疏,而不知采用甄说,疏矣。”对皇侃、邢昺等人的算法给予了较低的评价。实际上,刘氏认为“是书演算详明,于经义甚有裨益。唐时既立官学,而孔颖达作《正义》不采甄说,殊不可解。”可见,其对《五经筭术》评价颇高,而不能理解儒家计算文化传统存在的理由。《论语》“道千乘之国”讲述的是周代的封国制度。后世对之的探讨皆为纯粹的文本探讨。包咸注给出“千乘之国,方百里”,马融注则给出“千乘之国,三百一十六里有畸”,与之不同而未述算法。马融、郑玄等汉儒以数学解经实际是欲融合统一古今文之说。何晏《论语集解》将马注列于包注之前,实际已有选择之倾向。皇侃疏马注,不以《九章筭术》筹算开方术解之,而给出图形算法,由此开创儒家开方算法之传统。继之,甄鸾《五经筭术》以算家的筹算开方术释之,唐李淳风等则将是书立于学官,试图统一算法,却未成功。之后,两种开方术与计算文化传统各自独立演进。儒家开方传统经由孔颖达、贾公彦、邢昺、朱熹、许谦直到清代刘宝楠等学者的持续论述而延绵不绝;算家开方术则至贾宪、秦九韶(1208- 1261)、李冶(1192-1279)、朱世杰(14世纪)发展为高深的解高次方程数值理论,清中叶戴震等又整理、恢复古算。
晚清以降,受到西学的冲击,数学的专业性与独立性获得了前所未有的承认。因之,潘维城《论语古注集笺》将甄鸾算法纳入,而刘岳云《五经算术疏义》不仅高评价了《五经筭术》,而且已经逐渐不能理解儒家传统。自此之后,算家对“道千乘之国”的数学解释逐渐被接受,而儒家的传统算法则逐渐被遗忘,开方算法终获再次统一。钱宝琮认为“甄鸾的《五经算术》……对于后世研究经学的人是有帮助的。但有些解释不免穿凿附会,对于经义是否真有裨益是可以怀疑的。”[26] 部分延续了刘岳云的看法,却也不晓儒家算法。而研究儒学及《论语》者则全然不涉皇侃、邢斌等人注疏之算法。就此而言,对儒家开方算法的探讨为我们提供了独特的视角以呈现:在漫长的时期内,儒家计算文化传统起源、发展终至消亡,而又与算家传统互动关联演进的历史画卷。
[参考文献] [1]钱宝琮 . 增乘开方法的历史发展[A], 钱宝琮 : 宋元数学史数学集[C], 北京 : 科学出版社 , 1966, 36-59.
[2]郭书春 . 中国科学技术史·数学卷[M]. 北京 : 科学出版社 , 2010, 145-149.
[3]朱一文 . 儒学经典中的数学知识初探——以贾公彦对《周礼·考工记》“㮚氏为量”的注疏为例[J]. 自然科学史研究 , 2015, 34(2): 131-141.
[4]Zhu, Y. W. 'Different Cultures of Computation in Seventh Century China from the Viewpoint of Square Root Extraction'[J]. Historia Mathematica, 2016, 43(1): 3-25.
儒家开方算法之演进相关论文期刊你还可以阅读:《智能算法类论文如何发表》