∫π每天一道数学题
← 返回孙子算经
孙子算经 · 第 20 讲 · 2026-10-05 · 约 10 分钟

御米与合勺:古代小数藏在最小单位里

今有粟七斗九升,问为御米几何?答曰三斗三升一合八勺。御米率二十一,出米率只有四成二——全卷最低。而答案里的「合」与「勺」是比升更小的两级单位,1 合 = 0.1 升,1 勺 = 0.01 升。一个 33.18 升,古人用四个单位记完;今天我们用一个小数点。

原典

今有粟七斗九升。问:为御米几何?

答曰:三斗三升一合八勺。

术曰:置七斗九升以御米率二十一乘之,得一千六百五十九,为实,以粟率五十除之,即得。

白话翻译

有粟七斗九升。问能换多少御米(最精白的上等米)?

答案是:三斗三升一合八勺。

术文给的算法是:把七斗九升乘御米率二十一,得一千六百五十九作为被除数;拿粟率五十作除数,除完即得。

这道题的答案用了四级单位:斗、升、合、勺。其中合与勺比升还小——这是《孙子算经》里第一次出现「合」和「勺」,也是它记录小数值的方式。

示意图

御米:79 升粟经 21/50 折为 33.18 升,用斗升合勺四级记出

图:79 × 21 = 1659;1659 ÷ 50 = 33.18 升 = 3 斗 3 升 1 合 8 勺

古人的算法

第一步,统一单位。 七斗九升 = 79 升。

第二步,乘御米率。

79×21=165979 \times 21 = 1659

术文「得一千六百五十九」。这一步心算可拆:79×21=79×20+79=1580+79=165979 \times 21 = 79 \times 20 + 79 = 1580 + 79 = 1659。

第三步,除以粟率。

1659÷50=33.18 升1659 \div 50 = 33.18\ \text{升}

写成带分数:3395033 \dfrac{9}{50} 升。

第四步,换成复名数。 33.18 升怎么拆?

先用「逢十进一斗」:33=3×10+333 = 3 \times 10 + 3,即 3 斗 3 升。剩下小数部分 0.180.18 升。

秦汉量制在升以下还有两级:

1 升=10 合,1 合=10 勺1\ \text{升} = 10\ \text{合}, \qquad 1\ \text{合} = 10\ \text{勺}

所以

0.18 升=1.8 合=1 合 8 勺0.18\ \text{升} = 1.8\ \text{合} = 1\ \text{合}\ 8\ \text{勺}

合起来正是答曰:三斗三升一合八勺。

验算:3×10+3+0.1+0.08=33.183 \times 10 + 3 + 0.1 + 0.08 = 33.18 升 ✓

这次术文没有约分——因为御米率 21 与粟率 50 没有公因数(21 = 3 × 7,50 = 2 × 5²),要约也无从约起。上一讲糳米率 24 与 50 有公因数 2,所以有「以二约」。约不约,取决于数字本身——古人按实际情况处理,不生搬硬套。

现代数学视角

m=79×2150=79×0.42=33.18 升m = 79 \times \frac{21}{50} = 79 \times 0.42 = 33.18\ \text{升}

出米率 42%,是全卷最低的。 三种米排在一起:粝米 60%、糳米 48%、御米 42%。御米要磨到最精,四成二的粮食变成了糠和壳。

御米是什么米? 精白上等米,多供上层与祭祀。古代米质分级,本质是加工程度的分级——今天超市里的糙米、胚芽米、精白米,同一个逻辑:越精白,损耗越大,价格越高。

复名数就是古代的小数系统。 33.18 这个数,古人没有小数点可用,于是借最小单位分拆:

单位进位本题取值
斗10 升3
升10 合3
合10 勺1
勺—8

每一级都是十进,所以它可以无限往下分。今天的十进制小数,本质是同一件事——只是把「合」换成「十分位」、把「勺」换成「百分位」。中国古代的小数表达,比小数点符号更早。

一个细节值得注意:0.180.18 升拆成「1 合 8 勺」而不是「1.8 合」,因为古人不在合这一级用分数,而是继续往下一级走,直到除尽或到最小单位。这就是「逐级细分解」策略。

高中课本关联

小数与分数互化:33.18=33950=331810033.18 = 33\dfrac{9}{50} = 33\dfrac{18}{100}。让学生写出这三种种等价形式,并说明各自适用场合。

十进制与位值:斗、升、合、勺四级都是十进,对应今天的十位、个位、十分位、百分位。这是理解「位值制」的绝佳素材——中国人在十进位值制上有极深的造诣。

百分数:42% 的出米率,可用来讲百分数与比例。让学生算:若御米要得 50 升,需粟多少?(50÷0.42≈11950 \div 0.42 \approx 119 升。)

单位换算链:1 斗 = 10 升、1 升 = 10 合、1 合 = 10 勺,四级换算一次串完。这是今天「千—毫—微」国际单位制的古代版本。

思考与拓展

  1. 算一算:按术文算——79×21=165979 \times 21 = 1659,1659÷50=33.181659 \div 50 = 33.18;再把 0.18 升拆成 1 合 8 勺,验算答曰。

  2. 反推率:若不知道御米率,只知 79 升粟得 33.18 升御米,能否反推出御米率?(提示:33.1879=0.42\dfrac{33.18}{79} = 0.42,乘以粟率 50 得 21。)

  3. 改数据:若粟改为五斗(50 升),问得御米几何?(50×0.42=2150 \times 0.42 = 21 升,即二斗一升,恰好除尽。)

  4. 四级单位练习:把下面各数换成「斗升合勺」:45.6 升、12.05 升、100 升、7.77 升。

  5. 古今对照:今天 1 升 = 1000 毫升。古代的合、勺换算成毫升各是多少?若 33.18 升御米放在今天,等于多少毫升?

一句话总结

79 乘 21 除 50,得 33.18——古人没有小数点,却有斗升合勺四级十进,把小数记在了最小单位里。

— Y. · 2026-10-05