正文
卷八
本文永久链接:https://shishuguan.com/books/jiuzhang-suanshu-baihuawen-full/volume-1/chapter-9
方程(用以处理混合和正负问题)
现在有上等禾三捆,中等禾二捆,下等禾一捆,共得粮食三十九斗;上等禾二捆,中等禾三捆,下等禾一捆,共得粮食三十四斗;上等禾一捆,中等禾二捆,下等禾三捆,共得粮食二十六斗。问上、中、下等禾每捆各得粮食多少?答案:上等禾每捆九又四分之一斗。中等禾每捆四又四分之一斗。下等禾每捆二又四分之三斗。
方程(程,就是标准。各种物品混杂,各自列出数量,总计它们的实数。让每一行成为比率。有两种物品就设两次方程,有三种物品就设三次方程,都按照物品的数量来设方程。并列排成行,所以称为方程。行之间左右没有相同的存在,因为这是有所依据而说的。这是普遍的方法,用空话难以理解,所以特别用禾来举例说明。又列出中行、左行如同右行一样。)
解法:把上等禾三捆、中等禾二捆、下等禾一捆、粮食三十九斗放在右边。中行、左行的禾像右行那样排列。用右行的上等禾遍乘中行,然后直接相减。
(解法的用意,是让行数少的减去行数多的,反复相减,那么头一位必定先消尽。上面没有一位,那么这一行也就缺少一种物品了。然而用比率来相减,不影响其余数量的考核。如果消去头位,就消去了一种物品的实数。这样依次让左右行相减,审察它们的正负,就可以知道了。先让右行的上等禾乘中行,是为了齐同的意思。所谓齐同,是指中行直接减去右行。从简来说虽然不说齐同,但从齐同的意思来看,道理就是这样。)
又乘下一个,也直接相减。
(再去掉左行的首项。)
然后用中行中中等禾未消尽的数遍乘左行,再直接相减。
(也是让两行相减去掉其中的中等禾。)
左方下等禾未消尽的数,上作为法,下作为实。实就是下等禾的实数。
(上等禾、中等禾都已去掉,所以余数就是下等禾的实数,不只是一捆。要约简各捆的实数,应当用禾的捆数作为法。列出这些,用下等禾的捆数乘两行,再直接相减,那么下等禾的位置就全部解决了。各自用余下的一位捆数除它的下实。这样计算起来繁琐而不简便。所以另外作为法,是为了约简。但还是不如用原来的方法。这是推广不同的方法。)
求中等禾,用法乘中行的下实,再减去下等禾的实数。
(这是指中行的两种禾的实数,下等禾每捆的实数已经先知道,用中等禾的捆数求中等禾,所列的实数要减去下等禾的实数。而左方的下等禾虽然去掉了一,但用法作为分母,在比率上不通。所以先用乘法,使其相通而齐同。都让法作为分母,再减去下等禾的实数。用下等禾先已知的实数乘下等禾的捆数,就得到下等禾一位的列实。从下实中减去,那么余数就是中等禾的实数。)
余数,除以中等禾的捆数,就得到中等禾的实数。
(余数,是中等禾一位的实数。所以用一位的捆数约简它,就得到每捆的实数。)
求上等禾,也用法乘右行的下实,再减去下等禾、中等禾的实数。
(这是右行三种禾的共有实数,包含了三个位的实数。所以用两位的捆数约简它,就得到每捆的实数。现在中等禾、下等禾的实数都已知道,让它们乘右行的禾捆数再减去。所以也像前面一样各求列实,再减去下实。)
余数,除以上等禾的捆数,就得到上等禾的实数。实数都用法来命名,各得一斗。
(三个实数共同使用,不满法的,用法来命名。分母、实数都应当约简。)
现在有上等禾七捆,损减实数一斗,给予下等禾二捆,而实数共十斗;下等禾八捆,增加实数一斗,与上等禾二捆,而实数共十斗。问上、下等禾每捆各得实数多少?答案:上等禾每捆实数一又五十二分之十八斗。下等禾每捆实数五十二分之四十一斗。
解法:如方程法。损减的说成增加,增加的说成损减。
(问题的言辞虽然?现在按:实际是说上等禾七捆、下等禾二捆,实数共十一斗;上等禾二捆、下等禾八捆,实数共九斗。“损减的说成增加”,是说损减一斗,余下应当为十斗;现在要得到全部实数,应当加上所损减的。“增加的说成损减”,是说增加实数一斗,才满十斗;现在要知道原来的实数,应当减去所加的,就得到了。)
损减实数一斗的,其实数超过十斗;增加实数一斗的,其实数不足十斗。
(再次说明损益数,各用损益的数来损益它。)
现在有上等禾二捆,中等禾三捆,下等禾四捆,实数都不满一斗。上等禾取中等禾、中等禾取下等禾、下等禾取上等禾各一捆后实数满一斗。问上、中、下等禾每捆各得实数多少?答案:上等禾每捆实数二十五分之九斗。中等禾每捆实数二十五分之七斗。下等禾每捆实数二十五分之四斗。
解法:如方程法。各设置所取的数。
(设置上等禾二捆为右行的上,中等禾三捆为中行的中,下等禾四捆为左行的下,所取一捆及实数一斗各随其位。各行的相互借取物品都按此例。)
用正负术处理。
正负术说:
(现在两个算数得失相反,要用正负来命名它们。正算用红色,负算用黑色,否则用斜正来区分。方程本来有红黑相互取用,法、实数相互推求的方法。而它们的并减之势不能广泛通用,所以让红黑相互消夺,在算数中有时减有时加。同行不同位分为两类,各有并减的差出现在下面。记载这两条,特别用禾来体现这两条的意思。所以红黑相杂足以确定上下的标准,减益虽不同足以贯通左右的数,差实虽分足以应对同异的比率。那么正数无对时用负数,负数无对时用正数,其比率不错。)
同号相减,
(这是指用红色减红色,用黑色减黑色,行与行之间相减,是为了去掉头位。那么头位同号的,应当用这条;头位异号的,应当用下条。)
异号相加,
(加行减行,应当各按类别。异号的,不是同类。不是同类的,如同没有配对,不能相减。所以红色用黑色对减则去掉黑色;没有对则去掉黑色;黑色用红色对减则去掉红色;没有对则去掉红色;红色黑色合并到本数。这就是相加,都是为了消夺。消夺与减益构成一个实数。方法本来取要点,必须去掉行首。至于其他位,不嫌多少,所以有时让它们相减,有时让它们相加,道理上无论同异都是一样的。)
正数无对时用负数,负数无对时用正数。
(无对,就是没有配对。没有可减的,就让消夺者居于其位。当用列实减下实时,而行中正负混杂的也用这条。这条,同号减实,异号加实,正数无对时用负数,负数无对时用正数。)
异号相减,同号相加,正数无对时用正数,负数无对时用负数。
(这条以异号相减为例,所以也与上条互取。凡是正负用来记录同异,使两类相互取用而已。说负的未必少于正的,说正的未必多于负的。所以每一行中即使红黑异算也无妨。那么可以使头位经常异号。这条的实已经通贯了,于是用两条反复统一比率。观察其每次与上下相互取位,就随算而言罢了,如同一种方法。又,本来设置各行,是为了依据成数来相减。所以其多少不限,让上下相互比照而已。如果用正负相减,如数有旧增法,每行可以均分,不只限于物品左右而已。)
现在有上等禾五捆,损减实数一斗一升,相当于下等禾七捆;上等禾七捆,损减实数二斗五升,相当于下等禾五捆。问上、下等禾每捆各得实数多少?答案:上等禾每捆五升。下等禾每捆二升。
解法:如方程法。设置上等禾五捆为正,下等禾七捆为负,损减实数一斗一升为正。
(说上等禾五捆的实数多,减去一斗一升,余下的,是与下等禾七捆相当的数量。所以互换它们的算数,让它们相互折算,以一斗一升为差。所谓差,是上等禾剩余的实数。)
接着设置上等禾七捆为正,下等禾五捆为负,损减实数二斗五升为正。用正负术处理。
(按:正负之术,本来设置列行,物品程数不限多少,必须让它们与实数上下依次,而以每行各自为率。然而有时减有时加,同行不同位,分为两类,各自并减的差出现在下面。)
现在有上等禾六捆,损减实数一斗八升,相当于下等禾十捆;下等禾十五捆,损减实数五升,相当于上等禾五捆。问上、下等禾每捆各得实数多少?答案:上等禾每捆实数八升。下等禾每捆实数三升。
解法:如方程法。设置上等禾六捆为正,下等禾十捆为负,损减实数一斗八升为正。接着,上等禾五捆为负,下等禾十五捆为正,损减实数五升为正。用正负术处理。
(说上等禾六捆的实数多,减去一斗八升,余下的,是与下等禾十捆相当的数量。所以也互换它们的算数,而以一斗八升为差实。差实,是上等禾剩余的实数。)
现在有上等禾三捆,增加实数六斗,相当于下等禾十捆;下等禾五捆,增加实数一斗,相当于上等禾二捆。问上、下等禾每捆各得实数多少?答案:上等禾每捆实数八斗。下等禾每捆实数三斗。
解法:如方程法。设置上等禾三捆为正,下等禾十捆为负,增加实数六斗为负。接着设置上等禾二捆为负,下等禾五捆为正,增加实数一斗为负。用正负术处理。
(说上等禾三捆的实数少,增加六斗,然后与下等禾十捆相当。所以也互换它们的算数,而以六斗为差实。差实,是下等禾剩余的实数。)
现在有牛五头,羊二只,值金十两;牛二头,羊五只,值金八两。问牛、羊各值金多少?答案:牛每头值金一又二十一分之十三两。羊每只值金二十一分之二十两。
解法:如方程法。
(假令为同齐,头位为牛,应当相乘。右行确定,再置牛十,羊四,值金二十两;左行:牛十,羊二十五,值金四十两。牛数相等,金多二十两,是羊差二十一造成的。用少行减多行,则牛数尽消,只有羊与值金的数可见,可得知。以小推大,即使四五行也不异。)
现在有卖牛二头,羊五只,用来买十三头猪,剩余钱一千;卖牛三头,猪三头,用来买九只羊,钱正好;卖六只羊,八头猪,用来买五头牛,钱不足六百。问牛、羊、猪价格各多少?答案:牛价一千二百。羊价五百。猪价三百。
解法:如方程法。设置牛二头、羊五只为正,猪十三头为负,余钱数为正;接着,牛三头为正,羊九只为负,猪三头为正;再设置五头牛为负,六只羊为正,八头猪为正,不足钱数为负。用正负术处理。
(这中行买卖相抵,钱正好,所以只互换买卖的算数而已。因此下面没有钱数。假设要用此行如方程法,先让二牛遍乘中行,再用右行直接减之。所以最终下实空缺。所以注说正无实负,负无实正,才是同类的。将要用另一实加上适足之数与实物作为实。盈不足章的“黄金白银”与此相当。“假设黄金九枚,白银十一枚,称重正好相等。交换其一,黄金轻十三两。问金、银一枚各重多少?”与此相同。)
现在有五只雀、六只燕,聚集在秤上称,雀都重,燕都轻。一只雀和一只燕交换位置,秤正好平衡。合并雀、燕的重量为一斤。问雀、燕各一只重多少?答案:雀重一又十九分之十三两。燕重一又十九分之五两。
解法:如方程法。交换它们的重量,各重八两。
现在有四只麻雀和一只燕子,与一只麻雀和五只燕子重量相等,总重量为一斤,所以每只各重八两。列出两行的程数。左行头位的数如果是一,就让右行全部去除。也可以从左行取法数和实到左边。左行的数多,用右行取它的数。左行头位减尽后,中间和下位的算筹表示燕子和实。右行不动。左行上空,中间是法,下面是实,这样每枚的重量就可以知道了。按:这里四只麻雀和一只燕子与一只麻雀和五只燕子重量相等,相当于三只麻雀和四只燕子重量相等。麻雀的比率是重四,燕子的比率是重三。各种再程的比率都可以用不同的方法求得,那就是它们的数值。
现在有甲、乙两人,持钱数未知。甲得到乙的一半钱后共有五十钱,乙得到甲的三分之二钱后也有五十钱。问甲、乙各持钱多少?答:甲持三十七点五钱。乙持二十五钱。方法:按照方程,用增减法。(这个问题说的是:一个甲加半个乙等于五十;三分之二个甲加一个乙也等于五十。各自用分母乘以整数部分,再加分子。列出方程:两个甲加一个乙等于一百钱;两个甲加三个乙等于一百五十钱。于是就像方程那样做。各种有分数的东西都仿照此例。)
现在有二匹马、一头牛,总价超过一万钱,超过的部分等于半匹马的价格;一匹马、二头牛,总价不足一万钱,不足的部分等于半头牛的价格。问牛、马价格各多少?答:马价是五千四百五十四又十一分之六钱。牛价是一千八百一十八又十一分之二钱。方法:按照方程,用增减法。(这里一匹半马加一头牛价值一万钱,二头半牛加一匹马也价值一万钱。一匹半马加一头牛值一万钱,通分后取整数,右行变为三匹马、二头牛,值二万钱。二头半牛加一匹马值一万钱,通分后取整数,左行变为二匹马、五头牛,值二万钱。)
现在有武马一匹、中马二匹、下马三匹,各自拉四十石货物上坡,都不能上去。武马借中马一匹,中马借下马一匹,下马借武马一匹,于是都能上去。问武马、中马、下马一匹各自能拉多少石?答:武马一匹能拉二十二又七分之六石。中马一匹能拉十七又七分之一石。下马一匹能拉五又七分之五石。方法:按照方程。各自设置借用的数目,用正负术处理。
现在有五家共用一口井。甲用两根绳子不够,差乙的一根绳子。乙用三根绳子不够,差丙的一根绳子。丙用四根绳子不够,差丁的一根绳子。丁用五根绳子不够,差戊的一根绳子。戊用六根绳子不够,差甲的一根绳子。如果各家都得到所差的一根绳子,就能到达水面。问井深和各家绳长各是多少?答:井深七丈二尺一寸。甲绳长二丈六尺五寸。乙绳长一丈九尺一寸。丙绳长一丈四尺八寸。丁绳长一丈二尺九寸。戊绳长七尺六寸。方法:按照方程。用正负术处理。(这个比率最初按照方程来做,各称为一次到达井水。之后,法得到七百二十一,实得到七十六,这表示七百二十一根绳子中七十六次到达井水,并用了到达的次数。用法除实,就得到戊的一根绳子到达井水的次数,为七百二十一分之七十六。所以七百二十一是井深,七十六是戊绳的长度,这是用比率来说明的。)
现在有白禾二步、青禾三步、黄禾四步、黑禾五步,实际收成都不到一斗。白禾取青禾、黄禾各一步,青禾取黄禾、黑禾各一步,黄禾取黑禾、白禾各一步,黑禾取白禾、青禾各一步,这样总收成都满一斗。问白、青、黄、黑禾每步的实际收成各是多少?答:白禾每步收成是一百一十一分之三十三斗。青禾每步收成是一百一十一分之二十八斗。黄禾每步收成是一百一十一分之十七斗。黑禾每步收成是一百一十一分之十斗。方法:按照方程。各自设置所取的数目,用正负术处理。
现在有甲禾二捆、乙禾三捆、丙禾四捆,每捆重量都超过一石。甲禾两捆的重量相当于乙禾一捆,乙禾三捆的重量相当于丙禾一捆,丙禾四捆的重量相当于甲禾一捆。问甲、乙、丙禾每捆各重多少?答:甲禾每捆重二十三分之十七石。乙禾每捆重二十三分之十一石。丙禾每捆重二十三分之十石。方法:按照方程。设置超过一石的重量为负数。(这个问题说的是:甲禾两捆的重量超过一石。超过的部分是多少?相当于乙禾一捆的重量。交互计算,让其互相抵消,而用一石作为差值。差值就是甲禾多余的实。所以设置算筹使它们相同。)用正负术处理。(这里,头位异名相除,正数没有对应数则得正,负数没有对应数则得负。)
现在有令一人、吏五人、从者十人,共吃鸡十只;令十人、吏一人、从者五人,共吃鸡八只;令五人、吏十人、从者一人,共吃鸡六只。问令、吏、从者每人吃鸡各多少?答:令一人吃一百二十二分之四十五只鸡。吏一人吃一百二十二分之四十一只鸡。从者一人吃一百二十二分之九十七只鸡。方法:按照方程。用正负术处理。
现在有五只羊、四只狗、三只鸡、两只兔,价值一千四百九十六钱;四只羊、两只狗、六只鸡、三只兔,价值一千一百七十五钱;三只羊、一只狗、七只鸡、五只兔,价值九百五十八钱;两只羊、三只狗、五只鸡、一只兔,价值八百六十一钱。问羊、狗、鸡、兔价格各是多少?答:羊价一百七十七钱。狗价一百二十一钱。鸡价二十三钱。兔价二十九钱。方法:按照方程。用正负术处理。
现在有麻九斗、麦七斗、菽三斗、荅二斗、黍五斗,价值一百四十钱;麻七斗、麦六斗、菽四斗、荅五斗、黍三斗,价值一百二十八钱;麻三斗、麦五斗、菽七斗、荅六斗、黍四斗,价值一百一十六钱;麻二斗、麦五斗、菽三斗、荅九斗、黍四斗,价值一百一十二钱;麻一斗、麦三斗、菽二斗、荅八斗、黍五斗,价值九十五钱。问每斗价值多少?答:麻每斗七钱。麦每斗四钱。菽每斗三钱。荅每斗五钱。黍每斗六钱。方法:按照方程。用正负术处理。(这里的麻麦与均输、少广章节中的重衰、积分都是重要内容。那些不精通原理、只照搬本方法的人,有的用算筹摆布毡上,喜好繁琐而容易出错,竟然不知道错误,反而以多为贵。所以他们计算时,无不暗于通变而专于一端。对于这类问题,如果只求完成,有时会失误,不能称为简约。更有其他方法,如同庖丁解牛,刀刃在骨缝间游走,所以能长久使用刀刃如新。数就像刀刃一样,如果简易灵活地运用,就能合乎庖丁的道理。因此能调和精神、爱惜刀刃,快速而少出错。所有《九章》中的重要问题,按照方法都不超过一百次运算。虽然布算不多,但足以计算很多。世人多以方程为难,或者只关注布算的符号和正负,无暇讨论其变化无穷,这就像胶柱调瑟一样。我姑且再作推广,创立新方法,写在下面,也将启发疑惑。
网罗道术精髓,岂能空谈?记录其应用实例,著明运算次数,每举一例来说明。
方程新方法说:用正负术处理。让左右行相减,先去掉下边的实,再转而去掉物位,那么求一行中两种物体正负相借的情况,就是它们相当的比率。又让两种物体与其他行互相取去,转换这两种物体相借的数目,就都是相当的比率。各自根据两种物体的相当比率,对换它们的数目,就是各自应得的比率。再设置成行及其下边的实,各自用其物体的本率按现有数来求,找出它们共同的量。然后相加,作为法。其中应当相加而一行中正负混杂的,同名的相加,异名的相消,余下的作为法。把下边置为实。实除以法,就符合所问。每种物体各自用本率按现有数来求,就都符合所问。比率不通的,要加以齐同。
另一种方法说:设置各种物体的通率作为列衰。再设置成行中各种物体的数目,各自用其率相乘,然后相加,作为法。其中应当相加而一行中正负混杂的,同名的相加,异名的相消,余下的作为法。用成行下边的实乘以列衰,各自作为实。实除以法,就得到结果。
用旧方法来做。一般应设置五行。现在要简化,先设置第三行,减去第四行,再减去第五行;然后设置第二行,用第二行减去第一行,再减去第四行。去掉它们的头位;余下的,可以减半;然后设置右行和第二行。去掉它们的头位;然后用右行去掉第四行的头位,用左行去掉第二行的头位,用第五行去掉第一行的头位;然后用第二行去掉第四行的头位;余下的,可以减半;用右行去掉第二行的头位,用第二行去掉第四行的头位。余下的,约简作为法、实。实除以法,得六,就是黍的价格。用方法处理第二行,得荅的价格,右行得菽的价格,左行得麦的价格,第三行得麻的价格。这样一共用了七十七次运算。
先用新方法求解这道题。先让第四行减去第三行;然后用第三行消去右行以及第二行、第四行的下位,再用第三行减去左行的下位,不够减就停止;接着用左行减去第三行的下位,然后用第三行消去左行的下位。完成后,去掉第三行。再用第四行消去左行的下位,并且减去右行的下位;然后用右行消去第二行和第四行的下位;接着用第二行减去第四行和左行的头位;再用第四行减去左行的菽位,不够减就停止;然后用左行减去第二行的头位,剩余的数可以再次折半;再用第四行消去左行和第二行的头位,接着用第二行消去左行的头位,剩下的数约简后,上面得到五,下面得到三,这是菽五相当于荅三;然后用左行消去第二行的菽位,再减去第四行和右行的菽位,不够减就停止;接着用右行减去第二行的头位,不够减就停止;然后用第二行消去右行的头位,再用左行消去右行的头位;剩下的数,上面得到六,下面得到五,这是荅六相当于黍五;然后用左行消去右行的荅位,剩下的数约简后,上面是二,下面是一;再用右行消去第二行的下位,用第二行消去第四行的下位,再减去左行的下位;接着用左行消去第二行的下位,剩下的数,上面得到三,下面得到四,这是麦三相当于菽四;再用第二行减去第四行的下位;然后用第四行消去第二行的下位;剩下的数,上面得到四,下面得到七,这是麻四相当于麦七。这样相互对应的比率就全部得出了。根据麻四相当于麦七,那么麻的价格比率是七,麦的价格比率是四;又根据麦三相当于菽四,那么麦的价格比率是四,菽的价格比率是三;又根据菽五相当于荅三,那么菽的价格比率是三,荅的价格比率是五;又根据荅六相当于黍五,那么荅的价格比率是五,黍的价格比率是六;于是比率就贯通了。再放置第三行,用第四行减去它,剩下麻一斗,菽四斗为正数,荅三斗为负数,下面的实是四正数。要求把它们都换算成麻的数量,用菽的比率三、荅的比率五分别乘以它们的斗数,再除以麻的比率七,得到菽是一又七分之五斗正数,荅是二又七分之一斗负数。这样菽和荅就化成了麻。把它们合并,让同名的项相加,异名的项相消,剩下的确定麻是七分之四斗,作为法。把四作为实,乘以分母,实得到二十八,分子就化成了法,用法去除得到七,就是麻一斗的价格。放置麦的比率四、菽的比率三、荅的比率五、黍的比率六,都用麻的价格相乘,各自作为实。用麻的比率七作为法。所得的结果就是各自的价格。也可以放置本行的实与物相通,各自用本来的比率按现在的算法,求它们按本率所得的结果。合并起来作为法。这样就没有正负的区别了,只是选择相同或不同的项罢了。还可以用另一种方法求解。放置五行的通率,即麻七、麦四、菽三、荅五、黍六,作为递减的比率。排列成行:麻一斗,菽四斗正数,荅三斗负数,各自用它们的比率相乘。完成后,让同名的项相加,异名的项相消,剩余作为法。再放置下面的实乘以递减的比率,所得各自作为实。这里可以设置约简的法,就不再乘递减的比率,各用递减的比率作为价格。这样总共用了一百二十四次算筹。