斛加三升?一道题把「加多少」逼到小数点后
粟二千三百七十四斛,斛加三升,问共粟几何?答曰二千四百四十五斛二斗二升。这道题短到只有一句话,却把最容易被忽略的事摆到了台面上:「斛加三升」到底加了几个百分点?用答曰一反推,加率必须是百分之三——也就是说每斛实际加了三斗,不是三升。一个字的差别,答案差出六十四斛。
原典
今有粟,二千三百七十四斛,斛加三升。问:共粟几何?
答曰:二千四百四十五斛二斗二升。
术曰:置粟二千三百七十四斛,以一斛三升乘之,即得。
白话翻译
有粟二千三百七十四斛,每斛加三升。问一共多少?
答案是:二千四百四十五斛二斗二升。
术文给的算法是:拿二千三百七十四斛乘「一斛三升」,即得。
这道题的算法只有一步乘法,真正的悬念在:「一斛三升」是什么意思? 是 ,还是 ?选错一个零,答案就差了六十四斛。
示意图
古人的算法
术文只说「以一斛三升乘之」。 这里的「一斛三升」不是重量,而是加率系数——每斛对应的新数量。
问题在于:这系数到底是 1.003 还是 1.03?
先按字面算。 三升 = 0.003 斛,所以系数 :
即 2381 斛 1 斗 1 升 2 合。
再看答曰:二千四百四十五斛二斗二升,也就是 。
两者相差
差了整整六十四斛,绝非四舍五入能解释。
反推真实加率。 设每斛加 升,则
解得
三斗,不是三升。 验证:
与答曰一字不差。
结论:本题的加率是 3%,即每斛加三斗。原文「斛加三升」与术文「以一斛三升乘之」中的「升」字,从答案反推应为「斗」。这是一处传抄或记载的讹误,但算法本身完全自洽。
现代数学视角
用今天的语言,这是增长率问题。
基数 斛,增长率 ,末值 斛:
3% 这个数字相当好看,也侧面印证了「三斗」的解读——古人编题通常选整齐的比率。
本题的价值在于暴露了一个通用陷阱:古代量制是十进(1 斛 = 10 斗,1 斗 = 10 升),「三升」与「三斗」只差一个进位,却让结果差十倍。今天用小数, 与 的区别全靠小数点后第几位——同样的错误,今天照样有人犯。 做数据分析时把 0.3% 写成 3%,是真实工作中最常见的乌龙之一。
从答案反推参数,也是数学建模的基本功。当模型参数与观测结果对不上时,与其怀疑结果,不如反推参数、检验哪一环出了错。本题正是用这个方法定位到那个「升」字。
高中课本关联
增长率与百分数:。本题是已知首项与末项求增长率的完整范例,且 3% 这个答案非常整齐。
方程反求参数:。列方程解 ,比反复试算高效得多。
数量级意识: 与 差十倍。让学生各算一遍 2374 的结果,亲眼看到 64 斛的差距——比讲十遍「注意小数点」都管用。
古籍校勘的方法论:本题展示了一种朴素的校勘思路——以算复核。当文字与计算结果矛盾时,可以反过来判断哪一个环节出了错。这种方法在数学史研究中至今在用。
思考与拓展
-
算一算:分别按 与 计算 的结果,比较两个答案与答曰的差距。
-
反推加率:用 求出加率,验证是否恰为 30 升。
-
改加率:若确实是「每斛加三升」(0.3%),答案应该是多少?写成斛斗升合的形式。
-
十倍陷阱:把下面几组数分别乘 与 ,算出差距:1000、5000、12345。观察基数越大,绝对差距如何变化。
-
校勘练习:若另一本题面写「斛加三斗」,答案是多少?这时原文与答曰是否一致?由此说明本题的问题出在哪个字。
一句话总结
2374 乘 1.03 得 2445.22,与答曰分毫不差——「三升」还是「三斗」,一个字的差别,六十四斛的差距。