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

方木作枕——为什么一根方木正好出八枚

木方三尺、高三尺,欲方五寸作枕一枚,问得几何?答曰二百一十六枚。术文三步:方三尺相乘得九尺,乘高得二十七尺,再「以一尺木八枕乘之」——一步就出答案。这个「八」不是估的:五寸枕的体积恰好是一立方尺的八分之一,数字选得恰到好处。

原典

今有木,方三尺,高三尺,欲方五寸作枕一枚。问:得几何?

答曰:二百一十六枚。

术曰:置方三尺,自相乘,得九尺,以高三尺乘之,得二十七尺,以一尺木八枕乘之,即得。

白话翻译

有一根方木,横截面三尺见方,长(高)三尺。现在要拿它做枕头,每枚枕头五寸见方。问能做多少枚?

答案是:二百一十六枚。

术文给的算法是:拿「方三尺」自乘,得九尺;再乘「高三尺」,得二十七尺;最后用「一尺木八枕」去乘,就得到答案。

注意这道题是乘法收尾,不是除法。 前两讲(第 18、19 讲的圆窖方窖)都要「以斛法除之」,本题却反了过来——先把方木体积算成二十七立方尺,再乘上「一立方尺出八枚」。为什么能这么算?因为枕木的体积刚刚好是八分之一立方尺。

示意图

方木作枕:三尺方木体积二十七立方尺,每立方尺出八枚五寸枕

图:3 尺见方 × 3 尺长 = 27 立方尺;一枚枕 5 寸见方 = 125 立方寸 = 1/8 立方尺;27 × 8 = 216

古人的算法

术文三步,每步都能验算。

第一步,截面自乘。 方木横截面三尺见方,面积为

3×3=9 平方尺3 \times 3 = 9\ \text{平方尺}

术文「得九尺」——沿用中算省略,乘出来是面积仍记作「尺」。

第二步,乘以长度。

9×3=27 立方尺9 \times 3 = 27\ \text{立方尺}

术文「得二十七尺」,同样省略了「立方」。

第三步,以一尺木八枕乘之。

27×8=216 枚27 \times 8 = 216\ \text{枚}

关键在于这个「八」。 一枚枕头五寸见方,体积是

5×5×5=125 立方寸5 \times 5 \times 5 = 125\ \text{立方寸}

而一立方尺等于 10×10×10=100010 \times 10 \times 10 = 1000 立方寸,所以

1000125=8\frac{1000}{125} = 8

一立方尺正好出八枚。 这就是术文「一尺木八枕」的来历——它不是约数,是精确值。

也正因为它精确,术文才能用乘法一步收尾:

N=V×8=27×8=216N = V \times 8 = 27 \times 8 = 216

现代数学视角

用今天的写法,就是最朴素的体积除法:

N=V大V小=27 立方尺18 立方尺=27×8=216N = \frac{V_{\text{大}}}{V_{\text{小}}} = \frac{27\ \text{立方尺}}{\frac{1}{8}\ \text{立方尺}} = 27 \times 8 = 216

换成寸来算也一样:方木 30×30×30=2700030 \times 30 \times 30 = 27000 立方寸,枕木 5×5×5=1255 \times 5 \times 5 = 125 立方寸,

27000125=216\frac{27000}{125} = 216

两条路殊途同归。 古人选乘法,是因为 1000 这个立方数恰好被 125 整除——选材时五寸这个数让 1000÷125=81000 \div 125 = 8 干净得不能再干净。如果改成四寸枕,1000÷64=15.6251000 \div 64 = 15.625,拖泥带水;改成一尺枕,1000÷1000=11000 \div 1000 = 1,又太显然。五寸正是不大不小、刚好出整数的那个数。

这背后是一条更一般的规律:两个正方体的体积比等于边长比的立方。

V大V小=(ab)3\frac{V_{\text{大}}}{V_{\text{小}}} = \left(\frac{a}{b}\right)^3

本题 ab=305=6\dfrac{a}{b} = \dfrac{30}{5} = 6,所以 N=63=216N = 6^3 = 216。一个「三次方」的直接物理意义,就是「每条边上能排下几个」——长、宽、高各六个,总数 6×6×66 \times 6 \times 6。古今算法的差别只在于:古人把它写成「二十七立方尺乘八」,今天写成「六的三次方」。

高中课本关联

正方体体积:V=a3V = a^3,以及体积比等于相似比的立方。这是立体几何「相似体体积比」的最简情形,高考中常以「放大模型」的形式出现。

单位换算:1 尺 = 10 寸,从长度换算到体积,进率是 103=100010^3 = 1000。这是「长度单位的 nn 次方就是 nn 维量的单位换算进率」的具体例子。

整除与因数分解:1000=8×1251000 = 8 \times 125,而 8=238 = 2^3、125=53125 = 5^3。枕木边长五寸,体积 535^3;一尺十寸,体积 10310^3。103÷53=23=810^3 \div 5^3 = 2^3 = 8——同样的三次方结构,只是底数从 10 换成 2。 这条因式分解的思路在指数运算里很常用。

估算与材料利用:真实切木料时,锯缝要占厚度,木头本身有弯曲缺陷,实际出料会少于 216。古人算的是「理想满切」,今天工程上要加损耗率。可以让学生讨论:若每枚枕木损耗相当于 0.5 寸材料,实际能出多少?

思考与拓展

  1. 算一算:按术文重算——32×3=273^2 \times 3 = 27 立方尺,27×8=21627 \times 8 = 216 枚;再用寸验算 27000125=216\dfrac{27000}{125} = 216。两条路都通。

  2. 想一想:为什么「一尺木八枕」是精确值而不是估算?如果改成四寸见方的枕木,一立方尺还能出整数枚吗?

  3. 换材料:若方木是三尺见方、长一丈(十尺),仍做五寸枕,问得几枚?(提示:体积是原来的几倍?)

  4. 从立方到平方:有一块三尺见方的薄板,厚一寸,要裁五寸见方的方片,能裁多少枚?两次都是「体积比」,但这次厚度方向上只有两层——算算看。

  5. 相似比:两块正方体木头,边长比是 3:13 : 1,体积比是多少?若大块切小块,最多能切几块?(忽略锯缝)这跟本题的 6:16:1 有什么共同点?

一句话总结

三尺方木二十七立方尺,一立方尺出八枚——五寸枕的体积恰好是八分之一立方尺,古人数选得准,术文就能一路乘到底。

— Y. · 2026-10-12