盈不足术

盈不足术是中国古代数学的一种算术方法。西汉成书的算学经典《九章算术》的第七章即名为“盈不足”。狭义的盈不足术指典型的盈亏问题的算法。广义的盈不足术则指透过双假设法将其他数学问题转化为盈亏问题、再用机械化算法求解的方法。

## 典型盈亏问题

《九章算数》原文｜解释｜抽象算法｜具体代入

今有共买鸡｜一群人一起买鸡

人出九，盈十一｜每人出 9 块，合起来多出 11 块｜记每人出的钱为 $a_1$，多出的钱为 $b_1$｜$a_1=9\quad b_1=11$

人出六，不足十六｜每人出 6 块，合起来差 16 块｜记每人出的钱为 $a_2$，差的钱为 $b_2$｜$a_2=6\quad b_2=16$

问︰人数、鸡价各几何？｜人数和鸡的总价分别是多少？

盈不足术曰｜“盈不足术”的算法如下

置所出率，盈、不足各居其下｜写出每人出了多少钱，把多出和差的钱分别对应地写在其下｜$a_1\qquad a_2$ $b_1\qquad b_2$｜$9\qquad 6$ $11\qquad 16$

令维乘所出率，并以为实｜交叉相乘，再相加，作为被除数（“实”）｜$a_1b_2+a_2b_1$｜$9 \times 16 + 6 \times 11 = 210$

并盈、不足为法｜把多出和差的钱加起来，作为除数（“法”）｜$b_1+b_2$｜$16+11=27$

实如法而一｜被除数除以除数（所得即为不盈不亏时的条件）｜$x=\frac{a_1b_2+a_2b_1}{b_1+b_2}$｜$x=\frac{210}{27}=7+\frac 79$

盈不足相与同其买物者，置所出率，以少减多，余｜写出多出时和不足时每人两次分别出了多少钱，用大数减去小数，得到“余”｜$|a_1-a_2|$｜$|9-6|=3$

以约法、实 实为物价，法为人数｜“余”除“实”，得到物价“余”除“法”得到人数｜$p=\frac{a_1b_2+a_2b_1}{|a_1-a_2|}$ $q=\frac{b_1+b_2}{|a_1-a_2|}$｜$p=\frac{210}{3}=70$ $q=\frac{27}{3}=9$

答曰：九人，鸡价七十｜共有 9 个人，总价为 70 块

### 证明

刘徽在为《九章算术》作注时，利用齐同原理对盈不足术进行了证明：“盈朒维乘两设者，欲为同齐之意。……齐其假令，同其盈朒……通计齐则不盈不朒之正数，故可并之为实，并盈、不足为法。”

刘徽指出，交叉相乘的意义是使其“同齐”。每人所出为 $a_1$时，盈 $b_1$，那么总价变为 $b_2$倍、每人所出变为 $a_1b_2$时，盈 $b_1b_2$。每人所出为 $a_2$时，不足 $b_2$，那么总价变为 $b_1$倍、每人所出变为 $a_2b_1$时，不足 $b_1b_2$。这样就“同其盈朒”，两者相加则盈亏相抵，就“不盈不朒”，此时总价为 $b_1+b_2$倍，每人所出为 $a_1b_2+a_2b_1$，相除即得到总价不变时每人所出的钱。

## 双假设法

除盈亏类问题，《九章算术》还通过双假设法，将其他算术问题转化、套入盈亏类问题的算法模型，进行求解。如：

《九章算数》原文｜解释｜抽象算法｜具体代入

今有醇酒一斗，直钱五十；行酒一斗，直钱一十｜好酒每斗 50 块，劣酒每斗 10 块

今将钱三十，得酒二斗｜现在花了 30 块，买了 2 斗酒

问︰醇、行酒各得几何？｜买了多少斗好酒、多少斗劣酒？

术曰：假令醇酒五升，行酒一斗五升，有余一十｜假设买了 0.5 斗好酒、1.5 斗劣酒，则多花了 10 块｜设 $a_1$，计算得 $b_1$｜$a_1=0.5$ $b_1=50\times 0.5+10\times (2-0.5)-30=10$

令之醇酒二升，行酒一斗八升，不足二｜假设买了 0.2 斗好酒、1.8 斗劣酒，则少花了 2 块｜设 $a_2$，计算得 $b_2$｜$a_2=0.2$ $b_2=30-[50\times 0.2+10\times (2-0.2)]=2$

（使用盈不足术，求出不盈不亏时的条件）｜$x=\frac{a_1b_2+a_2b_1}{b_1+b_2}$｜$x=\frac{0.5\times 2+0.2\times 10}{10+2}=0.25$ $2-0.25=1.75$

答曰：醇酒二升半，行酒一斗七升半｜好酒 0.25 斗，劣酒 1.75 斗

该问题本属于鸡兔同笼，而通过两次假设可以将其转化为盈亏类问题，再用盈不足术求解。

### 非线性问题

盈不足术实际上是一种线性插值法；对于非线性的问题，所求出的只是其近似值。《九章算术》和刘徽都没有意识到这一点。如：

《九章算数》原文｜解释｜抽象算法｜具体代入

今有蒲生一日，长三尺；莞生一日，长一尺蒲生日自半；莞生日自倍｜蒲草第一天长 3 尺，之后每天的生长速度为前一天的一半；莞草第一天长 1 尺，之后每天的生长速度为前一天的两倍

问︰几何日而长等？｜何时蒲草和莞草一样长？

术曰：假令二日，不足一尺五寸｜假设长了 2 天，则莞草还差 1.5 尺｜设 $a_1$，计算得 $b_1$｜$a_1=2$ $b_1=(3+1.5)-(1+2)=1.5$

令之三日，有余一尺七寸半｜假设长了 3 天，则莞草长了 1.75 尺｜设 $a_2$，计算得 $b_2$｜$a_2=3$ $b_2=(1+2+4)-(3+1.5+0.75)=1.75$

（使用盈不足术，求出不盈不亏时的条件）｜$x=\frac{a_1b_2+a_2b_1}{b_1+b_2}$｜$x=\frac{2\times 1.75+3\times 1.5}{1.5+1.75}=2+\frac 6{13}$

答曰：二日、十三分日之六｜当长了 $2+\frac 6{13}$ 天时

各长四尺八寸、十三分寸之六。｜等长为4尺、八又十三分之六寸

<image>

实际上该问题是非线性的。根据等比数列求和公式，可以将莞草与蒲草的长度差表示为：

$$f(x)=\frac{1\times (1-2^x)}{1-2}- \frac{3\times (1-0.5^x)}{1-0.5}=2^x+\frac{6}{2^x}-7$$

所求即为 $f(x)$的正数根。解得 $x=\log_{2} 6=1+\frac{\log 3}{\log 2}$。

而使用盈不足术所求出的答案实为近似值。两者关系见右图。

这种利用双假设法加盈不足术来求解一些复杂方程的根的近似值的方法，在现在的高等数学中被应用于线性插值近似法和割线法。

## 历史

在中国最早的数学书《算数书》中，就有通过盈不足术计算面积为一亩的正方形田地的边长的记载。《九章算术》第七章“盈不足”，则是对双假设法最早的详细说明。

伊斯兰黄金时代的阿拉伯数学家也大量研究了双假设法。阿布·卡米勒著有《双假设法之书》（Kitāb al-khaṭaʾayn）。古斯塔·伊本·卢卡采用欧式几何的方法，第一次对双假设法给出了几何证明。

中世纪欧洲数学家斐波那契在《计算之书》的第十三章中讨论了双假设法。他明确承认该方法来自阿拉伯数学，并称之为 elchataym，即来自阿拉伯语的 al-khaṭāʾayn。在代数符号尚未普及的时代，这种万能算法在欧洲流传甚广，兴盛一时。

明朝时，中国传统数学已经衰落，《九章算术》近乎失传，盈不足术不为人所知。利玛窦和李之藻将克里斯托弗·克拉维乌斯的《实用算术概论》（Epitome arithmeticae practicae）编译为《同文算指》，将其中的双假设法称为“叠借互征法”。

钱宝琮最早提出，阿拉伯数学中的双假设法来自中国的盈不足术，al-khaṭāʾayn 即与“契丹”有关。李约瑟也认为有此种可能性。这种说法已被中国数学史界广泛接受；但也有学者认为，中国盈不足术是欧洲双假设法的源头的说法仍然缺乏令人信服的证据支持。