# 卷九

类型：古籍章节
书名：《九章算术》
作者：佚名
时代：东汉
类别：数学典籍 · 白话译文
卷目：正文
章节：卷九

## 本章概览

九章算术卷九专论勾股定理，从“勾三股四弦五”的基本关系出发，系统推导出勾、股、弦的互求方法，并以此解决大量实际问题。例如，圆木锯方需先以直径为弦、板厚为勾求股；葛藤缠木将周长乘周数作股、木长作勾求弦；方形水池中芦苇拉向岸边，以半池边为勾、出水为股弦差求水深；开门离限与门不合问题，转化为勾股差与和的关系。这些题目均以勾股定理为核心，辅以出入相补原理，通过开平方、加减乘除等运算得到答案。此外，卷中还有勾中容方、容圆问题，以及多步行走相遇、城邑开门望树、测山高井深等更复杂的应用题。解法常设勾、股、弦率，利用比例关系转换，体现了古人将几何问题代数化的高超技巧。李淳风等所作的注释进一步解释了算理，如用朱、青、黄幂图说明面积关系，使算法更加直观。全卷既展示了勾股定理的普适性，也反映了古代数学与工程测量的紧密联系。

本章介绍勾股定理及其在多种实际问题中的计算方法。

学习勾股定理的多种应用场景和计算方法。

## 正文

现有勾三尺，股四尺，问弦是多少？答：五尺。

现有弦五尺，勾三尺，问股是多少？答：四尺。

现有股四尺，弦五尺，问勾是多少？答：三尺。

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

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

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

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

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

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

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

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

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

（这里以圆直径二尺五寸为弦，板厚七寸为勾，所求宽为股。）

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

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

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

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

方法：取半池边长自乘。

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

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

（出水是股弦差。减去这个差幂于矩幂，则得到结果。）

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

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

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

（李淳风等按：这里芦苇原本出水一尺，既然得到水深，所以加上出水尺数得到芦苇长。）

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

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

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

让它如同拖地数一样除。

（拖地是股弦差。用它除矩幂，就是股弦和。）

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

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

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

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

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

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

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

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

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

（也是用半增加。如上方法，本应取半，这里都相同，所以不再取半。）

现有开门离开门限一尺，门不合拢二寸。问门宽多少？答：一丈一寸。

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

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

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

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

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

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

方法：用离根距离自乘。

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

让它如同竹高一样除。

（凡竹高一丈为股弦和，用这个幂除得到差。）

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

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

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

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

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

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

（南行十步，是已知勾求弦、股，所以用弦、股率乘，如勾率除。）

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

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

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

现有勾八步，股十五步。问勾中容纳的圆直径多少？答：六步。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

此算法与上面甲乙相同。

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

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

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

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

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

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

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

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

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

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

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

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

## 标签

- 勾股
- 弦
- 开平方
- 方法
- 勾
- 股
- 幂
- 矩形
- 正方形
- 李淳风

原始页面：https://shishuguan.com/books/jiuzhang-suanshu-baihuawen-full/volume-1/chapter-10
