通化追剧联盟

【数学文化】《九章算术》数学江湖中的"独孤九剑"

玩转数学 2021-09-11 12:58:25


若问金庸江湖中哪套剑法最厉害,十有八九都会想到“独孤九剑”。那位俨如神话的剑魔独孤求败,终其一生欲求一败而不得,大抵是所有剑客们心向往之的至高境界。其实在数学江湖中也有一套“独孤九剑”,那便是被誉为“中国数学圣经”的《九章算术》。




《九章算术》作者不详,师承不明,无门无派,身世神秘,仿佛天外飞仙般突然降临江湖,一出现便惊艳了众生,引得历代名家尽折腰,甘愿殚精竭虑,纷纷为之作注,九章之学,遂成大宗。


如此经典,非圣贤不能为。魏晋数坛盟主刘徽归戴周公,“周公制礼而有九数,九数之流则《九章》是矣”,又云西汉张苍、耿寿昌曾“因旧文之遗残,各称删补”。若斯言足征,则《九章算术》之渊源,实可远溯千年,至迟于西汉初期已见成书,其后递经修订,于东汉初期已传定本。


刘徽(225~295),山东邹平县人,魏晋时伟大数学家,中国古典数学理论的奠基人之一,著有《九章算术注》和《海岛算经》。


正如“独孤九剑”有九式一样,《九章算术》当然也有九章,每章研习一术,分别是方田术、粟米术、衰分术、少广术、商功术、均输术、盈不足术、方程术、勾股术,合称“九术”,即九种算法,不过听起来怎么都像是武功秘诀或兵战奇略。


中国人重务实而轻务虚,《九章算术》亦不屑于纯粹的数理推演,凡所研习,莫不与社会生活息息相关。对此,刘徽曾有精辟的论述:方田者,“以御田畴界域”;粟米者,“以御交质变易”;衰分者,“以御贵贱禀税”;少广者,“以御积幂方圆”;商功者,“以御功程积实”;均输者,“以御远近劳费”;盈不足者,“以御隐杂互见”;方程者,“以御错糅正负”;勾股者,“以御高深广远”。



刘徽《九章算术注》


可见,《九章算术》所要解决的是诸如田亩丈量、粮食折换、商品交易、物资分配、土木工程、水利建设、赋税缴纳、徭役摊派、盈亏平衡等方方面面的问题,是基于现实的需要,而非偶发的兴趣,故而所要探究的也是如何计算面积、体积、容积,如何进行分数运算、比例运算、等差运算、正负数运算,如何开平方、开立方,如何求解多元线性方程组,如何运用勾股定理测高望远等实用实效的数学方法。


剑有剑招,算有算题,“独孤九剑”须得从一招一招练起,《九章算术》也得从一题一题做起。整部《九章算术》说到底就是一本算题集,共列举了二百四十六道算题,每题皆有问有答有解。这又好比二人对剑,一人出招,一人接招,至于如何见招拆招,则全赖“九术”之妙用。


看来欲有所进境,是非动手不可了。不妨就从每章各抽一题,以期略尽管窥之责。





箕田求积




今有箕田,舌广二十步,踵广五步,正从三十步,问为田几何?(方田章)


这正是方田术最擅长的面积计算问题,由于常跟“田”打交道,故而“田”也就自然成为了各类图形的代称,诸如:“方田”指矩形,“圭田”指等腰三角形,“邪田”指直角梯形,“箕田”指等腰梯形,“圆田”指圆形,“宛田”指球冠形,“弧田”指弓形,“环田”指环形等等。不同的“田”有不同的面积计算公式,遂又衍生出种种专语,诸如:“广”为长,“从”为宽,“正从”为高,“舌”为上底,“踵”为下底,“周”为周长,“径”为直径等等。通晓了这些行话般的代称专语,修炼起方田术来,才能事半而功倍。



箕田术示意图

本题所求为箕田面积,“箕田术曰:并踵舌而半之,以乘正从”,翻译过来即:


等腰梯形面积=1/2×(上底+下底)×高


这个公式是不是很亲切?遥想幼学当年,稚气犹未了,强记硬背,百遍后,倒也滚瓜烂熟。在此直接套用即可:


箕田面积=1/2×(20+5)×30=375步


汉制二百四十步为一亩,故答曰:“一亩一百三十五步。”





以粟换米




今有粟一斗,欲为粝米,问得几何?(粟米章)


国以农为本,民以食为天,粮食在古代不但是赋税的大宗,交易时更堪比金银等硬通货,因此粮食的兑换和折算问题,一直是朝廷和官府的头等大事。〈粟米章〉开篇就明示“粟米之法”,列出了二十种谷物及米饭的换算比率,相当于一份汉代的粮食换算表,即以本题而言,粟率五十,粝米率三十。


粟是中国北方主要的粮食作物,俗称“谷子”,去壳后俗称“小米”,粝米就是糙米。本题的意思是,根据“粟米之法”所列的比率,问一斗谷子能换多少糙米?


那么,具体该如何换算呢?这就要借助“今有术”。所谓“今有术”,其实就是四项比例算法,因每问开头常冠以“今有”二字,故得此诨号。其修炼口诀曰:“以所有数乘所求率为实,以所有率为法,实如法而一。”以公式表示即是:


所求数=所有数×所求率/所有率


本题是以粟来兑换粝米,粟数为所有数,粝米数为所求数,粟率为所有率,粝米率为所求率。依今有术之法:


粝米数=粟数×粝米率/粟率=1斗×30/50=0.6斗


汉制十升为一斗,故答曰:“为粝米六升。”





五爵分鹿




今有大夫、不更、簪袅、上造、公士,凡五人,共猎得五鹿。欲以爵次分之,问各得几何?(衰分章)


古代以爵级为赐,大夫、不更、簪袅、上造、公士都是战国之初已有的官爵名称,爵数各有等差,依次为大夫五,不更四,簪袅三,上造二,公士一。本题要求将猎得的五只鹿,按爵级予以赏赐,分配比例即为爵数,问五爵各得多少?


今有术解决的虽是按比例交换问题,但同样可以适用于此处的按比例分配问题,由此便形成了衰分术。衰(cuī)即差别之意,衰分即按差别来分配。本题所给出的算法是:“列置爵数,各自为衰,副并为法。以五鹿乘未并者各自为实,实如法得一鹿。”


所谓“列置爵数,各自为衰,副并为法”,就是把分配比例依次列出,以各率相加之和作为除数:


5:4:3:2:1

5+4+3+2+1=15


所谓“五鹿乘未并者各自为实,实如法得一鹿”,就是用五鹿之数乘以五爵各自在分配总率中所占的比例,即可求得各自应得鹿数:


大夫应得鹿数=5鹿×5/15=1又2/3鹿

不更应得鹿数=5鹿×4/15=1又1/3鹿

簪袅应得鹿数=5鹿×3/15=1鹿

上造应得鹿数=5鹿×2/15=2/3鹿

公士应得鹿数=5鹿×1/15=1/3鹿


故答曰:“大夫得一鹿三分鹿之二,不更得一鹿三分鹿之一,簪袅得一鹿,上造得三分鹿之二,公士得三分鹿之一。”


本题中还涉及到了分数运算法则,这在〈方田章〉中有更为详尽的论述,包括约分(分数化简法)、合分(分数加法)、减分(分数减法)、乘分(分数乘法)、经分(分数除法)、课分(分数比较大小)、平分(分数求平均值)及大广田(带分数乘法)——千万别被它们古奥的名字唬住,其实都不过是最基本的分数加减乘除四则运算罢了,当代的初中生人人皆会。





积步开方




今有积五万五千二百二十五步,问为方几何?(少广章)


少广术是已知面积或体积,而反求边长,相当于方田术和商功术的逆向运算,这就必然会涉及到开平方和开立方的问题。《九章算术》的开方术极为精彩,采用数形结合的方法,根据几何上“出入相补”的原理,“析理以词,解体用图”,显示了中国传统数学的特色,开创了后来开更高次方和求高次方程数值解之先河。特别令人惊异之处,是指出了存在有开不尽的情形,“若开之不尽者,为不可工”,并给这种不尽根数起了一个专门的名字——“面”。


本题是一道简单的开平方题,欲求55225的平方根。《九章算术》用的是古老的算筹,先摆出开方数式,再通过移动算筹而借位,比之普通的加减乘除四则运算要复杂得多。本题答曰:“二百三十五步。”







阳马求积




今有阳马,广五尺,袤七尺,高八尺。问积几何?(商功章)


阳马不是马,而一种特殊的锥体,本题所要求的就是这种锥体的体积,这正是商功术的看家本领。在动手计算之前,先得介绍一下立体图形家族的诸位成员。


最熟悉的当然是长方体,在家族中排行最大,辈份最高,许多锥体和柱体都是由它演变而来的。


将长方体沿对角面斜分为二,得到两个一模一样的三角棱锥,称为“堑堵”,其体积是长方体的一半。



堑堵


再沿堑堵某一顶点与相对的棱剖开,得四角棱锥和三角棱锥各一个。四角棱锥以矩形为底,另有一棱与底面垂直,称为“阳马”;余下的三角棱锥是由四个直角三角形组成的四面体,称为“鳖臑”(biē nào)。




合两鳖臑而成一阳马,合三阳马而成一立方。故本题解法是:“广袤相乘,以高乘之,三而一。”也就是以阳马矩形底面的长乘以宽,再乘以阳马的高,得出未剖分前长方体的体积,除以三即为阳马的体积。答曰:“九十三尺少半尺。”


商功术天天应对的都是建房、造屋、筑城、修堤、挖沟、开渠等土木水利工程问题,所遇到的怪咖自然不止以上几位,还有“刍童”、“刍甍”、“曲池”、“盘池”、“冥谷”等等。“刍童”指的是上下底皆为矩形的拟柱体,刍甍指的是上底为一棱、下底为一矩形的拟柱体,至于“曲池”、“盘池”、“冥谷”则都是长方台体,计算方法大同小异。







四县均输




今有均输粟,甲县一万户,行道八日;乙县九千五百户,行道十日;丙县一万二千三百五十户,行道十三日;丁县一万二千二百户,行道二十日,各到输所。凡四县赋,当输二十五万斛,用车一万乘。欲以道里远近、户数多少,衰出之,问粟、车各几何?(均输章)


所谓“均输”,就是平均分配运输负担。本题中县户有多少之差,行道有远近之异,欲其均等,故各令行道日数约户为衰分,行道多者少其户,行道少者多其户。

甲县衰分=10000户/8日=125

乙县衰分=9500户/10日=95

丙县衰分=12350户/13日=95

丁县衰分=12200户/20日=61


已知衰分,就可以运用前已熟悉的衰分术,很容易地计算出各县当输的粟数和当用的车数了,答曰:“甲县粟八万三千一百斛,车三千三百二十四乘。乙县粟六万三千一百七十五斛,车二千五百二十七乘。丙县粟六万三千一百七十五斛,车二千五百二十七乘。丁县粟四万五百五十斛,车一千六百二十二乘。”


这只是均输术最正经的应用,事实上,它还可以解决一些不大重要却很有趣的小问题,例如数学史上著名的“凫雁相逢”问题:


今有凫起南海,七日至北海;雁起北海,九日至南海。今凫雁俱起,问何日相逢?(均输章)


凫即野鸭,雁即大雁,野鸭从南海飞到北海需要七天,大雁从北海飞到南海需要九天。野鸭和大雁同时分别从南海和北海出发,问多少天可以相遇?


凫雁相逢


本题虽然简单,却包含了均输术中的时日、路程、速度等几乎所有的元素,是典型性非典型题,反映了中国古代在处理与比例分配相关的分数运算时的基本思维——“齐同”,化异分母为同分母叫“同其母”,要保持分数值不变,还必须“齐其子”,母同子齐以后才可以进行加减运算。所以,“凫雁相逢”的解法是:“并日数为法,日数相乘为实,实如法得一日。”也就是说,以各自需要的天数之和为除数,以各自需要的天数之积为被除数,这样就得到日数。答曰:“三日十六分日之十五。”






人共买物




今有共买物,人出八,盈三;人出七,不足四。问人数、物价各几何?(盈不足章)


题目意思是几人合买一物,每人出钱八块,则多三块,是为盈余;每人出钱七块,则少四块,是为不足。问人数和物价各是多少?


这是典型的盈不足问题,自然必须用盈不足术。盈不足术跟衰分术一样,也是由今有术衍生而来。由于往往要面对盈和亏两种情形,需要通过两次假设来求得结果,所以在欧洲又被称为“双假位法”,亦译作“迭借互征”。盈不足术能处理各种隐而不见、杂乱无章的数量关系问题,因此又被誉为“万能算法”,称霸数坛。


《九章算术》所给出的盈不足术公式相当繁复啰嗦,反而刘徽的注更为简捷,在此无暇赘述,还是直奔主题为上。


首先计算人数。每人两次出钱,相差为8-7=1,这是所谓“一人之差”。而“盈不足为众人之差”,也就是说由于每人两次出钱都差一点,导致了最后有3个“众人之差”,大家相差的就是盈余的3块钱和不足的4块钱之和,“众人之差”是7块钱。“以一人之差约众人之差,故得人数也”,以7除以1,即得知人数是7人。



再来计算物价。每人出钱8块,买1物,多钱3块;若买4物,则需出钱8×4=32块,多3×4=12块。每人出钱7块,买1物,少钱4块;若买3物,则需出钱7×3=21块,少4×3=12块。两次盈亏等同,可以互相抵消。两次出钱之和=8×4+7×3=53块,共计买得4+3=7物。前已算得人数是7人,可知物价是53块钱。故答曰:“七人,物价五十三。”





五家共井




今有五家共井,甲二绠不足,如乙一绠;乙三绠不足,如丙一绠;丙四绠不足,如丁一绠;丁五绠不足,如戊一绠;戊六绠不足,如甲一绠。如各得所不足一绠,皆逮。问井深、绠长各几何?(方程章)


成语“绠短汲深”,可谓是本题的绝佳写照。绠即提桶汲水的绳子,这里是说五户人家共用一口井,各家都有提水的绳子,但都不够长。甲家的两条与乙家的一条合起来够用,乙家的三条和丙家的一条合起来够用,丙家的四条与丁家的一条合起来够用,丁家的五条与戊家的一条合起来够用,戊家的六条与甲家的一条合起来够用。问井深和各家的绳长?



五家的绳长都是未知,井深亦是未知,如此便有六个未知数,一般算法当真应付不来,必得方程术来大显身手。题中历数了两户合用的五种情形,自可相应列出五个方程式。假设五家绳长依次为a、b、c、d、e,井深为h,则有:


2a+b=h ①

3b+c=h ②

4c+d=h ③

5d+e=h ④

6e+a=h ⑤


这是一个多元一次不定方程组,可以有多解,《九章算术》给出了一组,答曰:“井深七丈二尺一寸,甲绠长二丈六尺五寸,乙绠长一丈九尺一寸,丙绠长一丈四尺八寸,丁绠长一丈二尺九寸,戊绠长七尺六寸。”汉制七丈二尺相当于现今的17米有余,的确是一口超乎寻常的深井,难怪五家的绳子都不够长。


在方程的运算中,常常会遇到加减正负的问题,这就是所谓的“正负术”。正负术曰:“同名相益,异名相除,正无入负之,负无入正之。其异名相除,同名相益,正无入正之,负无入负之。”这句口诀里包含了两个概念——“正数”和“负数”。“同名”就是同号,“异名”就是异号,“相益”表示相加,“相除”表示相减。





引葭赴岸




今有池方一丈,葭生其中央,出水一尺。引葭赴岸,适与岸齐。问水深、葭长各几何?(勾股章)


这是一道很有趣的题,说的是有一个边长为一丈的方形水池,正中央长着一根芦苇,露出水面一尺。若将芦苇稍头垂直拉到岸边,顶端恰好与岸齐平。问水有多深?芦苇有多长?


勾股定理


要解这道题,先需认识勾股定理,而欲认识勾股定理,还得从规矩说起。规矩是从古至今常用不衰的画图工具,规以画圆,矩以画方。矩就是直角尺,若将三边连接,就是一个标准的直角三角形。无论是测量面积、体积、容积、高度、广度、深度,都离不开直角三角形,因此直角三角形三边长度的关系式是测量术的基石。这个关系式就是大名鼎鼎的勾股定理,西方称为毕达哥拉斯定理,而在《九章算术》中则称为“勾股术”,其诀曰:“勾股各自乘,并而开方除之,即弦。”直角三角形的两条直角边,短者叫勾,长者叫股,另外一条斜边叫弦。换言之,即是说直角三角形两直角边的平方和等于斜边的平方。设勾为a,股为b,弦为c,则a²+b²=c²。据《周髀算经》记载,西周初年的数学家商高曾向周公讲过“勾三股四弦五”,即3²+4²=5²,这是勾股定理最著名的特例。


勾股定理是数学史上惊心动魄的大发现,甚至有“故禹之所以治天下者,此数之所生也”的神话。而在古希腊更引起了一桩谋杀案,当时的大数学家毕达哥拉斯发现了这个定理,并将之扩大到哲学领域,提出了“万物皆数”(指有理数)的观点。他的弟子希伯索斯却发现正方形的对角线与边长不可公度,若正方形边长为1,则对角线是个无理数,这当然与毕氏学说相违背。毕达哥拉斯为保住毕氏学派的统治地位,便残忍地将希伯索斯扔进了大海。其实,希伯索斯只是颠覆了“万物皆数”的观点,并没有推翻勾股定理。时至今日,勾股定理仍然是最基本的几何定理之一。


掌握了勾股定理,要解本题就易如反掌了。《九章算术》给出的解法是:“半池方自乘,以出水一尺自乘,减之。余,倍出水除之,即得水深。加出水数,得葭长。”



引葭赴岸


设池边长一半为a,池深为b,葭长为c

按题意,已知a=5尺,c-b=1尺

用勾股定理 a²+b²=c²,可以得出

水深b=[a²-(c-b)²]/2(c-b)=(5²-1²)/2=12尺

葭长c=b+1=13尺

故答曰:“水深一丈二尺。葭长一丈三尺。”


“引葭赴岸”的故事宋代时还流传到了印度,被印度数学家拜斯迦罗本土化为“风吹荷花”问题:


湖静浪平六月天,荷花半尺出水面。

忽来南风吹倒莲,荷花恰在水中淹。

湖面之上不复见,入秋渔夫始发现。

落花去根三尺整,试问水深尺若干?


此题显然与“引葭赴岸”如出一辙,诗中有画,画中有题,妙趣横生。即使不做题,单纯欣赏这诗画中的意境,亦足畅怀。


至此,“九术”总算一一亮过了身手,但若要修炼得炉火纯青,只这般走马观花一番,显然是远远不够的,先得把二百四十六道题全做一遍才是正途。


“独孤九剑”之所以厉害,在于能克敌致胜,倘若只图花哨卖弄,遇敌时一触即溃,又怎配得上“剑魔”的威名?《九章算术》亦同此理,能真真切切解决现实问题的数学,才是活泼泼有生命力的数学。《九章算术》所归纳的种种算法,如今看来虽已不再高深,却依然被广泛应用于各个领域,非但有功于当时,亦且有裨于后世,“圣经”之誉,诚不负哉!


声明:本文转载自“国学时代”微信平台


Copyright © 通化追剧联盟@2017