∫π每天一道数学题
← 返回孙子算经专题
孙子算经 · 第 16 讲 · 2026-09-16 · 约 8 分钟

粟米之法四:粟换御米——当古人面对粮食兑换的数学智慧

《孙子算经》卷中记载的粟米互换之法,展示了古代中国如何通过"率"的概念解决不同粮食之间的兑换问题。本题以粟换御米为例,演示了"以率率之"的通用算法——先乘后除,率率相推。

原文

今有粟七斗九升。問:為御米幾何?

答曰:三斗三升一合八勺

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

白话翻译

现在有粟(粗米)七斗九升。问:能兑换成御米(精米)多少?

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

计算方法是:把七斗九升换算成升数(共79升),乘以御米的兑换率21,得到1659,作为"实"(被除数);再用粟的兑换率50去除,就得到了答案。

示意图

粟七斗九升兑换为御米的计算过程:79升×21÷50=33.18升=3斗3升1合8勺

图:粟换御米的率算过程

数学解读

一、现代算法完整过程

本题的核心是单位换算与比例计算。古代容量单位换算关系为:

1 斗=10 升,1 升=10 合,1 合=10 勺1 \text{ 斗} = 10 \text{ 升}, \quad 1 \text{ 升} = 10 \text{ 合}, \quad 1 \text{ 合} = 10 \text{ 勺}

将七斗九升统一为升:

7 斗 9 升=7×10+9=79 升7 \text{ 斗 } 9 \text{ 升} = 7 \times 10 + 9 = 79 \text{ 升}

粟米互换的通用公式是:

所求米量=原有粟量×所求米率粟率\text{所求米量} = \text{原有粟量} \times \frac{\text{所求米率}}{\text{粟率}}

代入数据:

御米量=79×2150=79×2150=165950=33.18 升\text{御米量} = 79 \times \frac{21}{50} = \frac{79 \times 21}{50} = \frac{1659}{50} = 33.18 \text{ 升}

将33.18升转换回复合单位:

  • 整数部分:33.18=30+3.18=3 斗 3 升+0.18 升33.18 = 30 + 3.18 = 3 \text{ 斗 } 3 \text{ 升} + 0.18 \text{ 升}
  • 小数部分:0.18 升=1.8 合=1 合 0.8 合=1 合 8 勺0.18 \text{ 升} = 1.8 \text{ 合} = 1 \text{ 合 } 0.8 \text{ 合} = 1 \text{ 合 } 8 \text{ 勺}

最终答案:

33.18 升=3 斗 3 升 1 合 8 勺33.18 \text{ 升} = 3 \text{ 斗 } 3 \text{ 升 } 1 \text{ 合 } 8 \text{ 勺}

二、古术逐句解释

"置七斗九升"——"置"是算筹术语,意为"摆放"。将七斗九升按十进制化为单一单位"升",共79升,用算筹摆放在中间位置(实位)。算筹记数纵横相间:个位用纵式、十位用横式,79的筹式为𝍩𝍧(十位七横,位九纵)。

"以御米率二十一乘之"——取御米的兑换率21,乘实数79。筹算乘法分三步:先以御米率20乘79得1580,再以1乘79得79,相加得1659。运算时,乘数21摆放在下方(法位),乘得的结果逐步替换实位上的数字。

"得一千六百五十九,為實"——乘得1659,此数作为新的"实"(被除数),准备进行除法运算。

"以粟率五十除之,即得"——以粟的兑换率50去除1659。筹算除法称为"商除法",50作为"法"摆放在下方,对1659试商:50×30=150050 \times 30 = 1500,余159;50×3=15050 \times 3 = 150,余9;继续以余数9为实,9÷50=0.189 \div 50 = 0.18,最终得商33.18。

三、古今对照验证

步骤古术表述现代算式结果
单位统一置七斗九升7×10+9=797 \times 10 + 9 = 7979升
乘法运算以御米率二十一乘之79×2179 \times 211659
确定被除数得一千六百五十九,為實被除数 = 16591659
除法运算以粟率五十除之1659÷501659 \div 5033.18升
单位还原(隐含)33.18=331833.18 = 3\text{斗}3\text{升}1\text{合}8\text{勺}三斗三升一合八勺

古今算法完全一致,核心都是比例关系:

御米=×御米率粟率=79×2150=33.18\text{御米} = \text{粟} \times \frac{\text{御米率}}{\text{粟率}} = 79 \times \frac{21}{50} = 33.18

四、"率"的概念与粟米互换体系

《孙子算经》卷中开篇即列"粟米之法",给出了各种粮食的"率":

粮食
50
粝米30
稗米27
粺米24
御米21
御黍18
......

这里的"率"本质上是一个换算系数,表示单位量的该种粮食相对于"粟"的"价值密度"或"换算权重"。率越大,同等体积(或重量)的粮食越"粗";率越小,越"精"。

粟换御米的逻辑是:79升"粗粮"(率50),能换多少"精粮"(率21)?

精粮量=粗粮量×精粮率粗粮率=79×2150\text{精粮量} = \text{粗粮量} \times \frac{\text{精粮率}}{\text{粗粮率}} = 79 \times \frac{21}{50}

这正是一个反比例关系:粮食越精(率越小),同等数量的粗粮换得的精粮越少。79升粟只换得约33升御米,符合生活经验。

五、中西比较:率算的历史地位

这种"以率率之"的方法,在西方数学史上对应的是三法则(Rule of Three)

  • 古中国:《孙子算经》(约公元4-5世纪)已系统使用率的概念,将各类粮食互换统一为"以所求率乘实为实,法率为法"的通用算法。
  • 古印度:《婆罗摩修正体系》(婆什迦罗,12世纪)中也有类似的三法则。
  • 欧洲:斐波那契《计算之书》(1202年)将三法则从阿拉伯世界引入欧洲,成为商业算术的核心算法。

中国"率"的概念更早,且更具系统性——不仅用于粮食兑换,还扩展为"今有术"(即三法则的通用形式),成为中国传统数学的重要算法模型。

高中课本关联

本题对应的高中数学知识点:

  1. 基本运算与单位换算——十进制单位换算(斗、升、合、勺)是基础运算能力的考查。

  2. 算法初步——"先乘后除"的算法流程,体现了程序化思想。在高中数学必修3"算法初步"中,本题可设计为算法案例:输入粟量,乘以御米率,除以粟率,输出结果。

  3. 数学建模——将实际问题抽象为比例模型,即"已知总量和两部分的比例关系,求各部分量",这是高考常见的应用题类型。

高考考法示例:以古代数学名著为背景,考查算法流程图或数学文化题(近年高考热点)。

思考与拓展

基础题:今有粟二斗五升,问为粝米几何?(粝米率30)

解答:25×30÷50=1525 \times 30 \div 50 = 15升 = 一斗五升

进阶题:今有粟一石,先换得粺米(率24),再以粺米换御米(率21),问最终得御米几何?

解答:第一步,100×24÷50=48100 \times 24 \div 50 = 48升粺米;第二步,48×21÷24=4248 \times 21 \div 24 = 42升御米。或直接用连比例:100×2450×2124=100×2150=42100 \times \frac{24}{50} \times \frac{21}{24} = 100 \times \frac{21}{50} = 42升。可见中间粺米的"率"被约去,结果与直接粟换御米相同——这体现了率的传递性

挑战题:若粟率变为60,御米率变为28,其他条件不变,今有粟七斗九升,问为御米几何?分析率的变化对结果的影响。

解答:79×28÷60=22126036.8779 \times 28 \div 60 = \frac{2212}{60} \approx 36.87升 = 3斗6升8合7勺。率从21/50变为28/60,比值从0.42变为约0.467,兑换率提高,故得米增多。这说明"率"的设定直接影响换算结果,反映了不同历史时期或地区粮食加工精度的差异。

一句话总结

粟米互换的核心是"以率率之"——用比例关系将不同粮食统一度量,先乘后除,古今算法一脉相承,体现了中国传统数学"率"的思想体系。

— Y. · 2026-09-16
作者头像
关于作者 · 一个热爱信息技术的数学老师

高中数学老师,沉迷教学,相信好的数学教育应该让学生看到数学的整体性和思想性。用代码辅助教学,用技术记录思考。

详情 →