# 卷八

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

## 本章概览

《九章算术》卷八“方程”章是中国古代数学中系统处理线性方程组和正负数运算的里程碑。本章首先定义了“方程”的概念：将各类物品的数量与实数列成行，通过行间相减逐步消元，以求得未知数。以经典的“三禾”问题为例，上等禾、中等禾、下等禾各若干捆，共得若干斗，通过设立右、中、左三行方程，反复相减消去头位，最终解出每捆禾的实数值。这一过程体现了现代线性代数中消元法的雏形。更为关键的是，本章引入了“正负术”，即正负数的运算法则：同号相减，异号相加，正数无对时用负数，负数无对时用正数。这一规则用于处理方程中出现的负数项，使得消元操作更为灵活。后续问题如“损减增加”问题、牛马交换问题、井深绳长问题等，进一步展示了正负术在复杂混合情形中的应用。刘徽在注文中不仅详述了算法的每一步依据，还批评了机械照搬者，并提出了“新方法”简化运算。本章共十八道例题，从二元到五元，从整数到分数，从正数到负数，构建了一套完整的线性方程组解法体系，为后世数学发展奠定了坚实基础。读者通过本章，可一窥中国古代数学家在代数领域的卓越成就。

本章主要介绍《九章算术》中的方程术，即通过设立线性方程组并运用正负术求解未知数的方法，包含多个实际应用例题。

通过方程组（方程）与正负术（正负数运算规则）求解多种物品的单价或重量，涉及上中下禾、牛羊猪、雀燕等例题。

## 正文

方程（用以处理混合和正负问题）

现在有上等禾三捆，中等禾二捆，下等禾一捆，共得粮食三十九斗；上等禾二捆，中等禾三捆，下等禾一捆，共得粮食三十四斗；上等禾一捆，中等禾二捆，下等禾三捆，共得粮食二十六斗。问上、中、下等禾每捆各得粮食多少？答案：上等禾每捆九又四分之一斗。中等禾每捆四又四分之一斗。下等禾每捆二又四分之三斗。

方程（程，就是标准。各种物品混杂，各自列出数量，总计它们的实数。让每一行成为比率。有两种物品就设两次方程，有三种物品就设三次方程，都按照物品的数量来设方程。并列排成行，所以称为方程。行之间左右没有相同的存在，因为这是有所依据而说的。这是普遍的方法，用空话难以理解，所以特别用禾来举例说明。又列出中行、左行如同右行一样。）

解法：把上等禾三捆、中等禾二捆、下等禾一捆、粮食三十九斗放在右边。中行、左行的禾像右行那样排列。用右行的上等禾遍乘中行，然后直接相减。

（解法的用意，是让行数少的减去行数多的，反复相减，那么头一位必定先消尽。上面没有一位，那么这一行也就缺少一种物品了。然而用比率来相减，不影响其余数量的考核。如果消去头位，就消去了一种物品的实数。这样依次让左右行相减，审察它们的正负，就可以知道了。先让右行的上等禾乘中行，是为了齐同的意思。所谓齐同，是指中行直接减去右行。从简来说虽然不说齐同，但从齐同的意思来看，道理就是这样。）

又乘下一个，也直接相减。

（再去掉左行的首项。）

然后用中行中中等禾未消尽的数遍乘左行，再直接相减。

（也是让两行相减去掉其中的中等禾。）

左方下等禾未消尽的数，上作为法，下作为实。实就是下等禾的实数。

（上等禾、中等禾都已去掉，所以余数就是下等禾的实数，不只是一捆。要约简各捆的实数，应当用禾的捆数作为法。列出这些，用下等禾的捆数乘两行，再直接相减，那么下等禾的位置就全部解决了。各自用余下的一位捆数除它的下实。这样计算起来繁琐而不简便。所以另外作为法，是为了约简。但还是不如用原来的方法。这是推广不同的方法。）

求中等禾，用法乘中行的下实，再减去下等禾的实数。

（这是指中行的两种禾的实数，下等禾每捆的实数已经先知道，用中等禾的捆数求中等禾，所列的实数要减去下等禾的实数。而左方的下等禾虽然去掉了一，但用法作为分母，在比率上不通。所以先用乘法，使其相通而齐同。都让法作为分母，再减去下等禾的实数。用下等禾先已知的实数乘下等禾的捆数，就得到下等禾一位的列实。从下实中减去，那么余数就是中等禾的实数。）

余数，除以中等禾的捆数，就得到中等禾的实数。

（余数，是中等禾一位的实数。所以用一位的捆数约简它，就得到每捆的实数。）

求上等禾，也用法乘右行的下实，再减去下等禾、中等禾的实数。

（这是右行三种禾的共有实数，包含了三个位的实数。所以用两位的捆数约简它，就得到每捆的实数。现在中等禾、下等禾的实数都已知道，让它们乘右行的禾捆数再减去。所以也像前面一样各求列实，再减去下实。）

余数，除以上等禾的捆数，就得到上等禾的实数。实数都用法来命名，各得一斗。

（三个实数共同使用，不满法的，用法来命名。分母、实数都应当约简。）

现在有上等禾七捆，损减实数一斗，给予下等禾二捆，而实数共十斗；下等禾八捆，增加实数一斗，与上等禾二捆，而实数共十斗。问上、下等禾每捆各得实数多少？答案：上等禾每捆实数一又五十二分之十八斗。下等禾每捆实数五十二分之四十一斗。

解法：如方程法。损减的说成增加，增加的说成损减。

（问题的言辞虽然？现在按：实际是说上等禾七捆、下等禾二捆，实数共十一斗；上等禾二捆、下等禾八捆，实数共九斗。“损减的说成增加”，是说损减一斗，余下应当为十斗；现在要得到全部实数，应当加上所损减的。“增加的说成损减”，是说增加实数一斗，才满十斗；现在要知道原来的实数，应当减去所加的，就得到了。）

损减实数一斗的，其实数超过十斗；增加实数一斗的，其实数不足十斗。

（再次说明损益数，各用损益的数来损益它。）

现在有上等禾二捆，中等禾三捆，下等禾四捆，实数都不满一斗。上等禾取中等禾、中等禾取下等禾、下等禾取上等禾各一捆后实数满一斗。问上、中、下等禾每捆各得实数多少？答案：上等禾每捆实数二十五分之九斗。中等禾每捆实数二十五分之七斗。下等禾每捆实数二十五分之四斗。

解法：如方程法。各设置所取的数。

（设置上等禾二捆为右行的上，中等禾三捆为中行的中，下等禾四捆为左行的下，所取一捆及实数一斗各随其位。各行的相互借取物品都按此例。）

用正负术处理。

正负术说：

（现在两个算数得失相反，要用正负来命名它们。正算用红色，负算用黑色，否则用斜正来区分。方程本来有红黑相互取用，法、实数相互推求的方法。而它们的并减之势不能广泛通用，所以让红黑相互消夺，在算数中有时减有时加。同行不同位分为两类，各有并减的差出现在下面。记载这两条，特别用禾来体现这两条的意思。所以红黑相杂足以确定上下的标准，减益虽不同足以贯通左右的数，差实虽分足以应对同异的比率。那么正数无对时用负数，负数无对时用正数，其比率不错。）

同号相减，

（这是指用红色减红色，用黑色减黑色，行与行之间相减，是为了去掉头位。那么头位同号的，应当用这条；头位异号的，应当用下条。）

异号相加，

（加行减行，应当各按类别。异号的，不是同类。不是同类的，如同没有配对，不能相减。所以红色用黑色对减则去掉黑色；没有对则去掉黑色；黑色用红色对减则去掉红色；没有对则去掉红色；红色黑色合并到本数。这就是相加，都是为了消夺。消夺与减益构成一个实数。方法本来取要点，必须去掉行首。至于其他位，不嫌多少，所以有时让它们相减，有时让它们相加，道理上无论同异都是一样的。）

正数无对时用负数，负数无对时用正数。

（无对，就是没有配对。没有可减的，就让消夺者居于其位。当用列实减下实时，而行中正负混杂的也用这条。这条，同号减实，异号加实，正数无对时用负数，负数无对时用正数。）

异号相减，同号相加，正数无对时用正数，负数无对时用负数。

（这条以异号相减为例，所以也与上条互取。凡是正负用来记录同异，使两类相互取用而已。说负的未必少于正的，说正的未必多于负的。所以每一行中即使红黑异算也无妨。那么可以使头位经常异号。这条的实已经通贯了，于是用两条反复统一比率。观察其每次与上下相互取位，就随算而言罢了，如同一种方法。又，本来设置各行，是为了依据成数来相减。所以其多少不限，让上下相互比照而已。如果用正负相减，如数有旧增法，每行可以均分，不只限于物品左右而已。）

现在有上等禾五捆，损减实数一斗一升，相当于下等禾七捆；上等禾七捆，损减实数二斗五升，相当于下等禾五捆。问上、下等禾每捆各得实数多少？答案：上等禾每捆五升。下等禾每捆二升。

解法：如方程法。设置上等禾五捆为正，下等禾七捆为负，损减实数一斗一升为正。

（说上等禾五捆的实数多，减去一斗一升，余下的，是与下等禾七捆相当的数量。所以互换它们的算数，让它们相互折算，以一斗一升为差。所谓差，是上等禾剩余的实数。）

接着设置上等禾七捆为正，下等禾五捆为负，损减实数二斗五升为正。用正负术处理。

（按：正负之术，本来设置列行，物品程数不限多少，必须让它们与实数上下依次，而以每行各自为率。然而有时减有时加，同行不同位，分为两类，各自并减的差出现在下面。）

现在有上等禾六捆，损减实数一斗八升，相当于下等禾十捆；下等禾十五捆，损减实数五升，相当于上等禾五捆。问上、下等禾每捆各得实数多少？答案：上等禾每捆实数八升。下等禾每捆实数三升。

解法：如方程法。设置上等禾六捆为正，下等禾十捆为负，损减实数一斗八升为正。接着，上等禾五捆为负，下等禾十五捆为正，损减实数五升为正。用正负术处理。

（说上等禾六捆的实数多，减去一斗八升，余下的，是与下等禾十捆相当的数量。所以也互换它们的算数，而以一斗八升为差实。差实，是上等禾剩余的实数。）

现在有上等禾三捆，增加实数六斗，相当于下等禾十捆；下等禾五捆，增加实数一斗，相当于上等禾二捆。问上、下等禾每捆各得实数多少？答案：上等禾每捆实数八斗。下等禾每捆实数三斗。

解法：如方程法。设置上等禾三捆为正，下等禾十捆为负，增加实数六斗为负。接着设置上等禾二捆为负，下等禾五捆为正，增加实数一斗为负。用正负术处理。

（说上等禾三捆的实数少，增加六斗，然后与下等禾十捆相当。所以也互换它们的算数，而以六斗为差实。差实，是下等禾剩余的实数。）

现在有牛五头，羊二只，值金十两；牛二头，羊五只，值金八两。问牛、羊各值金多少？答案：牛每头值金一又二十一分之十三两。羊每只值金二十一分之二十两。

解法：如方程法。

（假令为同齐，头位为牛，应当相乘。右行确定，再置牛十，羊四，值金二十两；左行：牛十，羊二十五，值金四十两。牛数相等，金多二十两，是羊差二十一造成的。用少行减多行，则牛数尽消，只有羊与值金的数可见，可得知。以小推大，即使四五行也不异。）

现在有卖牛二头，羊五只，用来买十三头猪，剩余钱一千；卖牛三头，猪三头，用来买九只羊，钱正好；卖六只羊，八头猪，用来买五头牛，钱不足六百。问牛、羊、猪价格各多少？答案：牛价一千二百。羊价五百。猪价三百。

解法：如方程法。设置牛二头、羊五只为正，猪十三头为负，余钱数为正；接着，牛三头为正，羊九只为负，猪三头为正；再设置五头牛为负，六只羊为正，八头猪为正，不足钱数为负。用正负术处理。

（这中行买卖相抵，钱正好，所以只互换买卖的算数而已。因此下面没有钱数。假设要用此行如方程法，先让二牛遍乘中行，再用右行直接减之。所以最终下实空缺。所以注说正无实负，负无实正，才是同类的。将要用另一实加上适足之数与实物作为实。盈不足章的“黄金白银”与此相当。“假设黄金九枚，白银十一枚，称重正好相等。交换其一，黄金轻十三两。问金、银一枚各重多少？”与此相同。）

现在有五只雀、六只燕，聚集在秤上称，雀都重，燕都轻。一只雀和一只燕交换位置，秤正好平衡。合并雀、燕的重量为一斤。问雀、燕各一只重多少？答案：雀重一又十九分之十三两。燕重一又十九分之五两。

解法：如方程法。交换它们的重量，各重八两。

现在有四只麻雀和一只燕子，与一只麻雀和五只燕子重量相等，总重量为一斤，所以每只各重八两。列出两行的程数。左行头位的数如果是一，就让右行全部去除。也可以从左行取法数和实到左边。左行的数多，用右行取它的数。左行头位减尽后，中间和下位的算筹表示燕子和实。右行不动。左行上空，中间是法，下面是实，这样每枚的重量就可以知道了。按：这里四只麻雀和一只燕子与一只麻雀和五只燕子重量相等，相当于三只麻雀和四只燕子重量相等。麻雀的比率是重四，燕子的比率是重三。各种再程的比率都可以用不同的方法求得，那就是它们的数值。

现在有甲、乙两人，持钱数未知。甲得到乙的一半钱后共有五十钱，乙得到甲的三分之二钱后也有五十钱。问甲、乙各持钱多少？答：甲持三十七点五钱。乙持二十五钱。方法：按照方程，用增减法。（这个问题说的是：一个甲加半个乙等于五十；三分之二个甲加一个乙也等于五十。各自用分母乘以整数部分，再加分子。列出方程：两个甲加一个乙等于一百钱；两个甲加三个乙等于一百五十钱。于是就像方程那样做。各种有分数的东西都仿照此例。）

现在有二匹马、一头牛，总价超过一万钱，超过的部分等于半匹马的价格；一匹马、二头牛，总价不足一万钱，不足的部分等于半头牛的价格。问牛、马价格各多少？答：马价是五千四百五十四又十一分之六钱。牛价是一千八百一十八又十一分之二钱。方法：按照方程，用增减法。（这里一匹半马加一头牛价值一万钱，二头半牛加一匹马也价值一万钱。一匹半马加一头牛值一万钱，通分后取整数，右行变为三匹马、二头牛，值二万钱。二头半牛加一匹马值一万钱，通分后取整数，左行变为二匹马、五头牛，值二万钱。）

现在有武马一匹、中马二匹、下马三匹，各自拉四十石货物上坡，都不能上去。武马借中马一匹，中马借下马一匹，下马借武马一匹，于是都能上去。问武马、中马、下马一匹各自能拉多少石？答：武马一匹能拉二十二又七分之六石。中马一匹能拉十七又七分之一石。下马一匹能拉五又七分之五石。方法：按照方程。各自设置借用的数目，用正负术处理。

现在有五家共用一口井。甲用两根绳子不够，差乙的一根绳子。乙用三根绳子不够，差丙的一根绳子。丙用四根绳子不够，差丁的一根绳子。丁用五根绳子不够，差戊的一根绳子。戊用六根绳子不够，差甲的一根绳子。如果各家都得到所差的一根绳子，就能到达水面。问井深和各家绳长各是多少？答：井深七丈二尺一寸。甲绳长二丈六尺五寸。乙绳长一丈九尺一寸。丙绳长一丈四尺八寸。丁绳长一丈二尺九寸。戊绳长七尺六寸。方法：按照方程。用正负术处理。（这个比率最初按照方程来做，各称为一次到达井水。之后，法得到七百二十一，实得到七十六，这表示七百二十一根绳子中七十六次到达井水，并用了到达的次数。用法除实，就得到戊的一根绳子到达井水的次数，为七百二十一分之七十六。所以七百二十一是井深，七十六是戊绳的长度，这是用比率来说明的。）

现在有白禾二步、青禾三步、黄禾四步、黑禾五步，实际收成都不到一斗。白禾取青禾、黄禾各一步，青禾取黄禾、黑禾各一步，黄禾取黑禾、白禾各一步，黑禾取白禾、青禾各一步，这样总收成都满一斗。问白、青、黄、黑禾每步的实际收成各是多少？答：白禾每步收成是一百一十一分之三十三斗。青禾每步收成是一百一十一分之二十八斗。黄禾每步收成是一百一十一分之十七斗。黑禾每步收成是一百一十一分之十斗。方法：按照方程。各自设置所取的数目，用正负术处理。

现在有甲禾二捆、乙禾三捆、丙禾四捆，每捆重量都超过一石。甲禾两捆的重量相当于乙禾一捆，乙禾三捆的重量相当于丙禾一捆，丙禾四捆的重量相当于甲禾一捆。问甲、乙、丙禾每捆各重多少？答：甲禾每捆重二十三分之十七石。乙禾每捆重二十三分之十一石。丙禾每捆重二十三分之十石。方法：按照方程。设置超过一石的重量为负数。（这个问题说的是：甲禾两捆的重量超过一石。超过的部分是多少？相当于乙禾一捆的重量。交互计算，让其互相抵消，而用一石作为差值。差值就是甲禾多余的实。所以设置算筹使它们相同。）用正负术处理。（这里，头位异名相除，正数没有对应数则得正，负数没有对应数则得负。）

现在有令一人、吏五人、从者十人，共吃鸡十只；令十人、吏一人、从者五人，共吃鸡八只；令五人、吏十人、从者一人，共吃鸡六只。问令、吏、从者每人吃鸡各多少？答：令一人吃一百二十二分之四十五只鸡。吏一人吃一百二十二分之四十一只鸡。从者一人吃一百二十二分之九十七只鸡。方法：按照方程。用正负术处理。

现在有五只羊、四只狗、三只鸡、两只兔，价值一千四百九十六钱；四只羊、两只狗、六只鸡、三只兔，价值一千一百七十五钱；三只羊、一只狗、七只鸡、五只兔，价值九百五十八钱；两只羊、三只狗、五只鸡、一只兔，价值八百六十一钱。问羊、狗、鸡、兔价格各是多少？答：羊价一百七十七钱。狗价一百二十一钱。鸡价二十三钱。兔价二十九钱。方法：按照方程。用正负术处理。

现在有麻九斗、麦七斗、菽三斗、荅二斗、黍五斗，价值一百四十钱；麻七斗、麦六斗、菽四斗、荅五斗、黍三斗，价值一百二十八钱；麻三斗、麦五斗、菽七斗、荅六斗、黍四斗，价值一百一十六钱；麻二斗、麦五斗、菽三斗、荅九斗、黍四斗，价值一百一十二钱；麻一斗、麦三斗、菽二斗、荅八斗、黍五斗，价值九十五钱。问每斗价值多少？答：麻每斗七钱。麦每斗四钱。菽每斗三钱。荅每斗五钱。黍每斗六钱。方法：按照方程。用正负术处理。（这里的麻麦与均输、少广章节中的重衰、积分都是重要内容。那些不精通原理、只照搬本方法的人，有的用算筹摆布毡上，喜好繁琐而容易出错，竟然不知道错误，反而以多为贵。所以他们计算时，无不暗于通变而专于一端。对于这类问题，如果只求完成，有时会失误，不能称为简约。更有其他方法，如同庖丁解牛，刀刃在骨缝间游走，所以能长久使用刀刃如新。数就像刀刃一样，如果简易灵活地运用，就能合乎庖丁的道理。因此能调和精神、爱惜刀刃，快速而少出错。所有《九章》中的重要问题，按照方法都不超过一百次运算。虽然布算不多，但足以计算很多。世人多以方程为难，或者只关注布算的符号和正负，无暇讨论其变化无穷，这就像胶柱调瑟一样。我姑且再作推广，创立新方法，写在下面，也将启发疑惑。

网罗道术精髓，岂能空谈？记录其应用实例，著明运算次数，每举一例来说明。

方程新方法说：用正负术处理。让左右行相减，先去掉下边的实，再转而去掉物位，那么求一行中两种物体正负相借的情况，就是它们相当的比率。又让两种物体与其他行互相取去，转换这两种物体相借的数目，就都是相当的比率。各自根据两种物体的相当比率，对换它们的数目，就是各自应得的比率。再设置成行及其下边的实，各自用其物体的本率按现有数来求，找出它们共同的量。然后相加，作为法。其中应当相加而一行中正负混杂的，同名的相加，异名的相消，余下的作为法。把下边置为实。实除以法，就符合所问。每种物体各自用本率按现有数来求，就都符合所问。比率不通的，要加以齐同。

另一种方法说：设置各种物体的通率作为列衰。再设置成行中各种物体的数目，各自用其率相乘，然后相加，作为法。其中应当相加而一行中正负混杂的，同名的相加，异名的相消，余下的作为法。用成行下边的实乘以列衰，各自作为实。实除以法，就得到结果。

用旧方法来做。一般应设置五行。现在要简化，先设置第三行，减去第四行，再减去第五行；然后设置第二行，用第二行减去第一行，再减去第四行。去掉它们的头位；余下的，可以减半；然后设置右行和第二行。去掉它们的头位；然后用右行去掉第四行的头位，用左行去掉第二行的头位，用第五行去掉第一行的头位；然后用第二行去掉第四行的头位；余下的，可以减半；用右行去掉第二行的头位，用第二行去掉第四行的头位。余下的，约简作为法、实。实除以法，得六，就是黍的价格。用方法处理第二行，得荅的价格，右行得菽的价格，左行得麦的价格，第三行得麻的价格。这样一共用了七十七次运算。

先用新方法求解这道题。先让第四行减去第三行；然后用第三行消去右行以及第二行、第四行的下位，再用第三行减去左行的下位，不够减就停止；接着用左行减去第三行的下位，然后用第三行消去左行的下位。完成后，去掉第三行。再用第四行消去左行的下位，并且减去右行的下位；然后用右行消去第二行和第四行的下位；接着用第二行减去第四行和左行的头位；再用第四行减去左行的菽位，不够减就停止；然后用左行减去第二行的头位，剩余的数可以再次折半；再用第四行消去左行和第二行的头位，接着用第二行消去左行的头位，剩下的数约简后，上面得到五，下面得到三，这是菽五相当于荅三；然后用左行消去第二行的菽位，再减去第四行和右行的菽位，不够减就停止；接着用右行减去第二行的头位，不够减就停止；然后用第二行消去右行的头位，再用左行消去右行的头位；剩下的数，上面得到六，下面得到五，这是荅六相当于黍五；然后用左行消去右行的荅位，剩下的数约简后，上面是二，下面是一；再用右行消去第二行的下位，用第二行消去第四行的下位，再减去左行的下位；接着用左行消去第二行的下位，剩下的数，上面得到三，下面得到四，这是麦三相当于菽四；再用第二行减去第四行的下位；然后用第四行消去第二行的下位；剩下的数，上面得到四，下面得到七，这是麻四相当于麦七。这样相互对应的比率就全部得出了。根据麻四相当于麦七，那么麻的价格比率是七，麦的价格比率是四；又根据麦三相当于菽四，那么麦的价格比率是四，菽的价格比率是三；又根据菽五相当于荅三，那么菽的价格比率是三，荅的价格比率是五；又根据荅六相当于黍五，那么荅的价格比率是五，黍的价格比率是六；于是比率就贯通了。再放置第三行，用第四行减去它，剩下麻一斗，菽四斗为正数，荅三斗为负数，下面的实是四正数。要求把它们都换算成麻的数量，用菽的比率三、荅的比率五分别乘以它们的斗数，再除以麻的比率七，得到菽是一又七分之五斗正数，荅是二又七分之一斗负数。这样菽和荅就化成了麻。把它们合并，让同名的项相加，异名的项相消，剩下的确定麻是七分之四斗，作为法。把四作为实，乘以分母，实得到二十八，分子就化成了法，用法去除得到七，就是麻一斗的价格。放置麦的比率四、菽的比率三、荅的比率五、黍的比率六，都用麻的价格相乘，各自作为实。用麻的比率七作为法。所得的结果就是各自的价格。也可以放置本行的实与物相通，各自用本来的比率按现在的算法，求它们按本率所得的结果。合并起来作为法。这样就没有正负的区别了，只是选择相同或不同的项罢了。还可以用另一种方法求解。放置五行的通率，即麻七、麦四、菽三、荅五、黍六，作为递减的比率。排列成行：麻一斗，菽四斗正数，荅三斗负数，各自用它们的比率相乘。完成后，让同名的项相加，异名的项相消，剩余作为法。再放置下面的实乘以递减的比率，所得各自作为实。这里可以设置约简的法，就不再乘递减的比率，各用递减的比率作为价格。这样总共用了一百二十四次算筹。

## 标签

- 方程
- 正负术
- 损益
- 牛价
- 羊价
- 猪价
- 雀燕

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