甲乙丙三人持钱。甲说:把你们俩的一半给我,我就有九十。乙说:把你们俩的一半给我,我就有七十。丙说:把你们俩的一半给我,我就有五十六。问三人原各持多少?答曰甲七十二、乙三十二、丙四。这是《孙子算经》里最接近现代方程的一道题——三句话列出三个方程,解一个三元一次方程组。
原典
今有甲乙丙三人持钱,甲语乙丙:各将公等所持钱半以益我,钱成九十。乙复语甲丙:各将公等所持钱,半以益我,钱成七十。丙复语甲乙:各将公等所持钱,半以益我,钱成五十六。问:三人元持钱各若干?
答曰:甲七十二,乙三十二,丙四。
术曰:先置三人所语为位,以三乘之,各为积,甲得二百七十,乙得二百一十,丙得八十四,又置甲九十,乙七十,丙五十六,各半之,以甲乙减丙,以甲丙减乙,以乙丙减甲,即各得元数。
白话翻译
甲乙丙三人各持一些钱。甲对乙、丙说:把你们两人钱数的一半加给我,我就有九十文。乙对甲、丙说:把你们两人钱数的一半加给我,我就有七十文。丙对甲、乙说:把你们两人钱数的一半加给我,我就有五十六文。问三人原本各持多少?
答案是:甲七十二文,乙三十二文,丙四文。
术文的算法是:先把三人说的话各自乘三,得甲二百七十、乙二百一十、丙八十四;再把 90、70、56 各取一半,用「甲乙减丙、甲丙减乙、乙丙减甲」的方式相减,就得到三人的原钱数。
这段术文极其凝练,几乎没法直接读懂。 但把它翻成今天的方程,一切水落石出。
示意图

图:三句话各列一式,相加即得总数 108;再逐式相减,分别解出三人
古人的算法
先把三句话翻成数学语言。设甲、乙、丙原有钱数为 A、B、C。
甲说「你们俩的一半加给我,我有九十」:
A+2B+2C=90(1)
乙、丙同理:
B+2A+2C=70(2)
C+2A+2B=56(3)
关键操作:三式相加。 左边每个变量各出现三次(一次作为自己,两次作为别人的一半),所以
(A+B+C)+21(A+B+C)+21(A+B+C)=2(A+B+C)
等等——仔细数:A 在
(1) 出现一次(系数 1)、在
(2) 出现 21、在
(3) 出现 21,共 1+21+21=2 次。同理 B、C 也各出现 2 次。所以
2(A+B+C)=90+70+56=216
A+B+C=108
术文「以三乘之,得二百七十」——不对吧?90×3=270。啊,这就是术文的另一条路:它把每句话乘 3,得到的是
3A+23B+23C=270
整理:3×(A+2B+C)=270,即 3A+23(B+C)=270。这其实是「三倍后的方程」,用来消去分母(原始式子里有 21,乘 2 或乘 3 都能化整)。
术文接着说「各半之,以甲乙减丙,以甲丙减乙,以乙丙减甲」。换成今天的话:
第一步,求总数。 由
(1)
(2)(3) 相加(或等价地,把 270、210、84 相关信息代入):
A+B+C=108
第二步,逐人求解。 拿总数减去「另外两人的一半之和」:
由
(1):A+2108−A=90,即 A+54−2A=90,故 2A=36,A=72。
由
(2):B+54−2B=70,2B=16,B=32。
由
(3):C+54−2C=56,2C=2,C=4。
验证:72+32+4=108 ✓
代入
(1):72+232+4=72+18=90 ✓
代入
(2):32+272+4=32+38=70 ✓
代入
(3):4+272+32=4+52=56 ✓
三式全合,答案无误。
现代数学视角
这是最标准的三元一次方程组,今天初中就学:
⎩⎨⎧A+21B+21C=9021A+B+21C=7021A+21B+C=56
解法的现代版:先化整(各乘 2),再用加减消元:
⎩⎨⎧2A+B+C=180A+2B+C=140A+B+2C=112
三式相加:4(A+B+C)=432,故 A+B+C=108。
分别用第一式减第二式……等等,这里更简洁:第一式减去「A+B+C=108」,得 A=72;第二式减总数,得 B=32;第三式减总数,得 C=4。
术文的「以三乘之」是另一条路:它没把分数化掉,而是直接乘 3——这让人想到矩阵的初等变换。术文随后的「各半之,以甲乙减丙……」,翻译过来正是加减消元法:用一个方程减另一个方程,消去一个未知量。
值得一提的是线性结构:方程组的系数矩阵
121212112121211
是「对角线为 1、其余为 21」的对称矩阵,三式相加时每列的和恰好是 2,所以总数立即可得。古人不懂矩阵,但他们挑的这道题,结构上是最容易解的那一类。
高中课本关联
三元一次方程组:高中数学学业水平考试要求掌握。本题是「三句话列三式」的完整范例——从文字到方程这一步,恰是学生的难点。
方程思想:「设未知数、列方程、解方程、验算」四步,本题一样不少。验算尤其重要:三个答案都要代回原话检查。
对称结构:方程组系数对称,解法因此可以很简洁。今天讲「利用对称性简化计算」,本题是最好的例子——三式相加是标准动作。
古算与代数的对照:《九章算术》「方程」章是世界上最早的系统线性方程组解法,比印度早 600 年、比欧洲早 1000 多年。让学生了解这条脉络,能具体感受到中国古代数学的高度。
思考与拓展
-
算一算:设甲、乙、丙为 A、B、C,列出三个方程;化整后相加求 A+B+C=108;再分别求出 72、32、4;最后代回三句话逐一验证。
-
换数字:若三句话分别为「成一百」「成八十」「成六十」,问三人原持多少?(提示:A+B+C=4(100+80+60)×2,再用同样方法。)
-
改条件:若甲说「把你们俩全部给我」(而非一半),我有一百,其他两句不变,方程组如何变化?还好解吗?
-
四人版:若加入丁,丁说「把你们仨的一半给我,我有四十」,其他三人话语不变,能否仍用「相加」的技巧快速求出四人总和?
-
验算练习:只给你答案 72、32、4,请代回三句话,说明它们为什么满足条件。若把 72 改成 70,哪一句话会不成立?
一句话总结
三句话、三个方程、一次相加、三次相减——两千年前的算家已经会解三元一次方程组,而且解得比今天的标准解法还简洁。
— Y. · 2026-10-23