正文

卷九

作者:佚名朝代:东汉类别:数学典籍 · 白话译文

本文永久链接:https://shishuguan.com/books/jiuzhang-suanshu-baihuawen-full/volume-1/chapter-10

现有勾三尺,股四尺,问弦是多少?答:五尺。

现有弦五尺,勾三尺,问股是多少?答:四尺。

现有股四尺,弦五尺,问勾是多少?答:三尺。

勾股:短边叫勾,长边叫股,相交形成角叫弦。勾比股短,股比弦短。将用于各种比例,所以先提供这种方法以显示其来源。

方法:勾和股各自乘方,相加,再开平方,就是弦。

(勾自乘得到朱色正方形,股自乘得到青色正方形。让它们出入相补,各自按类别,于是剩下不移动的部分,合起来成为弦正方形的面积。开平方,就是弦。)

另外,股自乘,减去弦自乘。剩余部分开平方,就是勾。

(李淳风等按:这种方法是用勾方和股方合成弦方。勾方在里面,则勾比股短。让股自乘,减去弦自乘,剩下的就是勾方。所以开平方,就是勾。)

另外,勾自乘,减去弦自乘。剩余部分开平方,就是股。

(勾方和股方合起来成为弦方,去掉其中一个,则剩下的都可以知道。)

现有圆形木料,直径二尺五寸。想做成方形木板,要求厚七寸,问宽是多少?答:二尺四寸。

方法:让直径二尺五寸自乘,用七寸自乘,减去它。剩余部分开平方,就是宽。

(这里以圆直径二尺五寸为弦,板厚七寸为勾,所求宽为股。)

现有木长二丈,周长三尺。葛藤从木下生长,缠绕木七周,上端与木齐平。问葛藤多长?答:二丈九尺。

方法:用七周乘以周长为股,木长为勾,求其弦。弦就是葛藤的长度。

(根据周长,求木长,其形状是葛藤缠绕的长度。用笔管,青色线缠绕,有点像葛藤缠木。解开来看,则每一周之间自然形成勾股弦。那么其间葛藤长是弦。七周乘以周长,合并众多勾为一个勾;木长作为股,短;方法说木长叫股,是颠倒的说法。勾与股求弦,也没有周长。弦的自乘幂出自上面第一图。勾方和股方合成为弦方,是明显的。然而这两个幂的数可以说是倒置于弦幂之中而已。可以互相为表里,在里面的成为正方形幂,在外面的成为矩形幂。两个表里形状不同而数值相等。又按:此图勾方的矩形是青色,卷曲白色表,是其幂以股弦差为宽,股弦和为长,而股方在其里面。股方的矩形是青色,卷曲白色表,是其幂以勾弦差为宽,勾弦和为长,而勾方在其里面。所以差与和并用除之,短、长互相乘。)

现有方形水池边长一丈,芦苇生长在池中央,高出水面一尺。将芦苇拉向岸边,恰好与岸边齐平。问水深和芦苇长各是多少?答:水深一丈二尺,芦苇长一丈三尺。

方法:取半池边长自乘。

(这里以池边长的一半五尺为勾;水深为股;芦苇长为弦。已知勾和弦求股,所以让勾自乘,先得到矩形幂。)

用出水一尺自乘,减去它。

(出水是股弦差。减去这个差幂于矩幂,则得到结果。)

剩余,乘以二倍的出水数,就得到水深。

(差是矩幂的宽,水深是股。让这个幂得出水一尺为长,所以得到矩形从而得到芦苇长。)

加上出水数,得到芦苇长。

(李淳风等按:这里芦苇原本出水一尺,既然得到水深,所以加上出水尺数得到芦苇长。)

现有竖立的木柱,在顶端系绳,绳子拖地三尺。拉绳后退行走,离开木柱根部八尺时绳子用尽。问绳长多少?答:一丈二尺六分之一尺。

方法:用离开根部的距离自乘。

(这里以离开根部八尺为勾,所求绳子是弦。拉绳用尽、开门离开门限,是勾及股弦差,同一方法。离开根部自乘,是先展开矩形幂。)

让它如同拖地数一样除。

(拖地是股弦差。用它除矩幂,就是股弦和。)

所得,加上拖地数再除以二,就是绳长。

(如果不能除以二,则加倍分母。加上差得到和,则是两个长。所以再除以二。减去差得到和,除以二,得到木长。)

现有墙高一丈,将木杆斜靠于墙,上端与墙齐平。将木杆下端向后拉一尺,木杆顶端触地。问木杆长多少?答:五丈五寸。

方法:以墙高一十尺自乘,如同后退的尺数一样除。所得,加上后退尺数再除以二,就是木杆长度。

(这里以墙高一丈为勾,所求斜靠的木杆为弦,向后拉一尺为股弦差。做法的意思与系绳问题相同。)

现有圆形木料埋在墙中,不知道大小。用锯锯它,锯深一寸,锯道长一尺。问直径多少?答:木料直径二尺六寸。

方法:取锯道长的一半自乘。

(这种方法以锯道一尺为勾,木料直径为弦,锯深一寸为股弦差的一半。锯道长是半。李淳风等按:下面锯深一寸为半股弦差。注说为股差差者,是锯道。)

如同深寸一样除,用深寸增加它,就是木料直径。

(也是用半增加。如上方法,本应取半,这里都相同,所以不再取半。)

现有开门离开门限一尺,门不合拢二寸。问门宽多少?答:一丈一寸。

方法:用离开门限一尺自乘。所得,用不合二寸的一半除。所得,增加不合的一半,就得到门宽。

(这里离开门限一尺为勾,半门宽为弦,不合二寸取半得一寸为股弦差。求弦,所以应当取半。现在以两弦为宽数,所以不再取半。)

现有门高比门宽多六尺八寸,两对角相距正好一丈。问门高和门宽各是多少?答:宽二尺八寸,高九尺六寸。

方法:让一丈自乘作为被除数。取相差数的一半,再自乘,加倍,减去被除数。取剩余的一半,开平方。所得,减去相差数的一半,就是门宽;加上相差数的一半,就是门高。

(让门宽为勾,高为股,两对角相距一丈为弦,高比宽多六尺八寸为勾股差。按图定位,弦幂正好满一万寸。加倍,减去勾股差幂,开平方。所得就是高宽和数。用差减去和再取半,就是门宽。加相差数,就是门高。现在这种方法先求其半。一丈自乘得到四个朱色幂、一个黄色幂。半差自乘,又加倍,得到黄色幂的四分之二,减去被除数,取剩余的一半,有两个朱色幂、四分之一黄色幂。对于大正方形来说是四分之一。所以开平方,得到高宽和数的一半。减差的一半,得到宽;加,得到门高。又按:此图幂:勾股并幂加上其差幂,也减去弦幂,得到积。大概先知道其弦,然后知道其勾与股。现在相等,自乘,也各自成方,合起来成为弦幂。让半差自乘,加倍,又半和自乘,加倍,也合起来成为弦幂。而差数没有的,这些各自自乘,而与相乘的数,各为门实。及股长勾短,同源而分流。假设勾、股各五,弦幂五十,开平方,得七尺,有余一,不尽。假设弦十,其幂一百,取半得勾、股二幂,各得五十,也应当不可开。所以说:圆三、径一,方五、斜七,虽然不能完全得理,也可以说相近。其勾股合而自相乘的幂,让弦自乘,加倍,为两弦幂,减去它,剩余,开平方,为勾股差。加于和再取半,为股;减差于和再取半,为勾。勾、股、弦即高、宽、斜。其出于此图,其加倍弦为长。让矩勾即为幂,得宽即为勾股差。其矩勾的幂,加倍勾为从法,开方也是勾股差。以勾股差幂减去弦幂,取剩余一半,差为从法,开平方,即勾。)

现有竹子高一丈,竹梢折断触地,离竹根三尺。问折断处多高?答:四尺二十分尺之一十一。

方法:用离根距离自乘。

(这里离根三尺为勾,折断后剩余高度为股,先让勾自乘得到幂。)

让它如同竹高一样除。

(凡竹高一丈为股弦和,用这个幂除得到差。)

所得,减去竹高再取剩余的一半,就是折断处的高度。

(这种方法与系绳之类相反。也可如上方法,让竹高自乘为股弦和幂,离根自乘为矩幂,减去,剩余为被除数。加倍竹高为除数,则得到折断处高度。)

现有两人从同一点出发,甲的行走速率为七,乙的行走速率为三。乙向东走,甲向南走十步后斜向东北与乙会合。问甲、乙各走了多少?答:乙向东走十步半,甲斜走十四步半追上。

方法:让七自乘,三也自乘,相加再除以二,作为甲斜行的速率。斜行速率减去七自乘,剩余为南行速率。用三乘以七为乙东行速率。

(这里以南行为勾,东行为股,斜行为弦,勾弦率和为七。欲引申,应当以股率自乘为幂,如同和除,所得为勾弦差率。加和的一半为弦率,用差率减,剩余为勾率。如此或有分数,应当通分约简而定。方法以相同使无分母,所以让勾弦和自乘为朱、黄相连的正方形。股自乘为青幂的矩形,以勾弦和为长,差为宽。现有相引之直,加损同上。其图大体以两弦为长,勾弦和为宽。引黄断其半为弦率。列用率七自乘,是勾弦和的率。所以弦减之,剩余为勾率。同立处是中间停点,都是勾弦和为率,所以也以勾率同其长。)

放置南行十步,用甲斜行速率乘之;副置十步,用乙东行速率乘之;各自作为被除数。被除数除以南行速率,各得行走数。

(南行十步,是已知勾求弦、股,所以用弦、股率乘,如勾率除。)

现有勾五步,股十二步。问勾中容纳的正方形边长多少?答:正方形边长三步十七分步之九。

方法:合并勾、股为除数,勾、股相乘为被除数。被除数除以除数,得到正方形边长一步。

(勾、股相乘得到朱、青、黄幂各两个。让黄幂长在角中,朱、青各按类别,让它们从两径,共同形成修幂:中方黄为宽,合并勾、股为长。所以合并勾、股为除数。幂图:正方形在勾中,则正方形的两廉各自形成小勾股,而其相与的形势不失原率。勾面上的小勾、股,股面上的小勾、股各合并为中率,让股为中率,合并勾、股为率,根据已知勾五步而现今有之,得到中方。再让勾为中率,以合并勾、股为率,根据已知股十二步而现今有之,则中方又可知道。这虽然不效而法,实际上有法由生。下面容圆率而似今有、衰分言之,可以看见。)

现有勾八步,股十五步。问勾中容纳的圆直径多少?答:六步。

方法:八步为勾,十五步为股,求其弦。三个数相加为除数。以勾乘股,加倍为被除数。被除数除以除数,得到直径一步。

直角边和另一直角边相乘得到图形的本体,红色、青色、黄色的面积各有两份。加倍它们,就得到各四份。可以在小纸上画图,分别剪裁斜正相交的地方,让它们颠倒互补,各自按类别合并,构成完整的面积:圆的直径为宽,并合的直角边、另一直角边、斜边为长。所以用并合的直角边、另一直角边、斜边作为除数。又用圆的大体来说,另一直角边中的青色必须用圆规在横向宽度上立起来,直角边和另一直角边又斜着与三条直径相等。然后再连接圆规,从横竖方向度量直角边和另一直角边,必然合并而成小方形。又画中间的斜边用圆规除去相交部分,则直角边和另一直角边上的中央小直角边、小另一直角边、小斜边:直角边上的小另一直角边、另一直角边上的小直角边都是小方形的边长,都是圆直径的一半。它们的数值因此可以成比例。用直角边、另一直角边、斜边作为比例系数,副加并合作为除数。用直角边乘未并合的数,各自作为被除数。被除数除以除数,得到直角边上的小另一直角边可知。用另一直角边乘比例系数作为被除数,则得到另一直角边上的小直角边可知。说法虽然不同,但至于它们形成除数的方法和实际结果,则归于相同。那么圆直径又可以用比例的差来并合:直角边斜边差减去另一直角边得到圆直径;又,斜边减去直角边与另一直角边的和,余数为圆直径;用直角边斜边差乘另一直角边斜边差再加倍,开平方,也是圆直径。

现有正方形城邑边长二百步,每边中央开门。出东门十五步有一棵树。问出南门多少步能看到树?答:六百六十六步又三分之二步。

算法:出东门的步数作为除数,用半城邑边长的平方作为被除数,被除数除以除数得到一步。

出东门十五步作为直角边率,东门南到城角一百步作为另一直角边率,南门东到城角一百步作为见到的直角边步数。想用见到的直角边求另一直角边,作为出南门的步数。正好半城邑边长自乘,另一直角边率应当乘见到的直角边,这两者数值相同。

现有城邑东西七里,南北九里,每边中央开门。出东门十五里有一棵树。问出南门多少步能看到树?答:三百一十五步。

算法:东门南到城角的步数,乘南门东到城角的步数作为被除数。以树离门的步数作为除数。被除数除以除数。

以东门南到城角四里半作为直角边率,出东门十五里作为另一直角边率,南门东到城角三里半作为见到的另一直角边。所问出南门就是见到的另一直角边的直角边。做这个算法的意思,与上面相同。

现有正方形城邑不知边长,每边中央开门。出北门三十步有一棵树,出西门七百五十步看到树。问城邑边长多少?答:一里。

算法:将两个出门步数相乘,再乘以四,作为被除数。开平方,即得城邑边长。

按:半城邑边长,让半边长自乘,除以出门步数,即得步数。让两个出门步数相乘,所以是半城邑边长自乘,占据一个角上的积分。再乘以四,就得到四个角上的积分。所以作为被除数,开平方,即得城邑边长。

现有正方形城邑不知边长,每边中央开门。出北门二十步有一棵树,出南门十四步,然后折向西行一千七百七十五步看到树。问城邑边长多少?答:二百五十步。

算法:以出北门步数乘西行步数,加倍,作为被除数。

这里以折向西行为另一直角边,从树到城邑南边十四步为直角边,以出北门二十步为直角边率,北门到西城角为另一直角边率,是半宽度。所以用出北门乘折向西行的另一直角边,用另一直角边率乘直角边的平方。但这平方占据一半,因为西行。所以又加倍,合并东边,全部完成。

并合出南门、北门的步数,作为纵的除数,开平方,即得城邑边长。

这个算法的面积,东西如城邑边长,南北从树到城邑南边十四步的面积,各以南北步数为宽,城邑边长为长,所以合并两个宽作为纵的除数,并合,作为角外的面积。

现有正方形城邑边长十里,每边中央开门。甲、乙都从城邑中央出发:乙向东出;甲向南出,出门不知步数,斜向东北,擦过城邑角,恰好与乙相遇。比例:甲走五份,乙走三份。问甲、乙各走了多少?答:甲出南门八百步,斜向东北行四千八百八十七步半,遇到乙。乙向东行四千三百一十二步半。

算法:让五自乘,三也自乘,并合后取一半,作为斜行率;斜行率减去五自乘的剩余,作为南行率;用三乘五作为乙东行率。

求三率的意思与上面甲乙相同。

设置城邑边长,取一半,用南行率乘它,除以东行率,即得出南门步数。

现在半边长,南门东到城角五里。半城邑,称为小另一直角边。求它以得出南门步数。所以设置城邑边长,取一半,用南行直角边率乘它,除以另一直角边率。

加上城邑边长的一半,即南行距离。

半城邑,指从城邑中心停下。

设置南行步数,求斜边,用斜行率乘它;求东行距离,用东行率乘它,各自作为被除数。被除数除以除数,南行率,得到一步。

此算法与上面甲乙相同。

现有树离人不知远近。立四根标杆,相距各一丈,让左边两根标杆与所望的目标参看对齐。从后面右边标杆望过去,进入前面右边标杆三寸。问树离人多远?答:三十三丈三尺三寸又三分之一寸。

算法:让一丈自乘作为被除数,以三寸作为除数,被除数除以除数。

这里以进入前面右边标杆三寸为直角边率,右边两根标杆相距一丈为另一直角边率,左右两根标杆相距一丈为见到的直角边。所问树离人的距离,是见到的直角边的另一直角边。另一直角边率应当乘见到的直角边,这两率都是一丈,所以说自乘。以三寸为除数。被除数除以除数得到一寸。

现有山位于树西边,不知其高度。山离树五十三里,树高九丈五尺。人站在树东边三里,看树梢恰好与山峰斜平。人眼高七尺。问山高多少?答:一百六十四丈九尺六寸又三分之二寸。

算法:设置树高,减去人眼高七尺,用剩余乘五十三里作为被除数。以人离树三里作为除数。被除数除以除数。得到的结果,加上树高,即得山高。

此算法是直角边和另一直角边的意义。

现有井,直径五尺,不知其深度。立五尺长的木杆在井上,从木杆顶端看水岸,进入井直径四寸。问井深多少?答:五丈七尺五寸。

算法:设置井直径五尺,减去进入直径四寸,剩余,乘立木五尺作为被除数。以进入直径四寸作为除数。被除数除以除数得到一寸。

这里以进入直径四寸为直角边率,立木五尺为另一直角边率,井直径剩余四尺六寸为见到的直角边。问井深,是见到的直角边的另一直角边。

现有门不知高和宽,竹竿不知长短。横着放,超出四尺;竖着放,超出二尺;斜着放,恰好出来。问门的高、宽、斜各多少?答:宽六尺。高八尺。斜一丈。

算法:竖着超出和横着超出的数相乘,加倍,然后开平方。得到的结果,加上竖着超出的数,即得门宽;加上横着超出的数,即得门高;两个超出的数相加,即得门的斜对角。

这里以门宽为直角边,门高为另一直角边,门斜对角为斜边。凡是直角边在另一直角边中,或矩形于表面,或方形于内部。连接它们,举起表面矩形并使它端直。又从直角边方形内部让成为青色矩形的表面,未充满黄色方形。充满此方形则两端的斜边重叠于角中,各以另一直角边斜边差为宽,直角边斜边差为长。所以两端差相乘,再加倍,则成为黄色方形的面积。开平方,得黄色方形的边长。其外部的青色部分,也以另一直角边斜边差为宽。所以用另一直角边斜边差加上,则为直角边。