∫π每天一道数学题
← 返回海岛算经专题
海岛算经 · 第 5 讲 · 2026-08-26 · 约 14 分钟

第5讲 登山望楼 —— 三望术:从楼底到楼顶的完整测量

这一讲是海岛算经里第一次出现"三望"——先测楼底(两次累矩)确定水平距离,再测楼顶(小表)算出楼高。从地面到楼顶,古人只用相似三角形,就把一个三维测量问题拆解成两步。

白话翻译

今有登山望楼,楼在平地。偃矩山上,令句高六尺。从句端斜望楼足,入下股一丈二尺。又设重矩于上,令其间相去三丈。更从句端斜望楼足,入上股一丈一尺四寸。又立小表于入股之会,复从句端斜望楼岑端,入小表八寸。问楼高几何?

答曰:八丈。

术曰:上下股相减,馀为法;置矩间,以下股乘之,如句高而一。所得,以入小表乘之,为实。实如法而一,即是楼高。


这道题说的是什么

前面几题,我们测的是海岛、松树、城邑——都是"一个目标"。

这一题变了:目标有两个——楼底和楼顶。

想象一下:你站在山顶上,山下有一座楼。你手里有一个直角矩(相当于一个直角三角板),竖直边高 6 尺(句高)。你站在山顶,顺着矩的斜边往下看,视线刚好落到楼底,在矩的水平边上留下了 1 丈 2 尺的"入股"(下股)。

然后你再往后退 3 丈,放第二个矩,同样看楼底,这次入股只有 1 丈 1 尺 4 寸(上股)。

有了这两个数据,你就能算出山到楼的水平距离

但等等——我们还没算楼高呢!你只知道楼底在哪里,但楼顶呢?

刘徽的解法是:在"入股之会"(即第一次测量时视线与矩的交点)立一根小标杆,再顺着矩的斜边往楼顶看,看小标杆被"吃掉"了多少——入小表 8 寸。

这个 8 寸,就是楼高在矩上的投影。结合前面算出的水平距离,就能求出楼高。

这就是典型的三望术:先测两次楼底定位水平距离,再测一次楼顶推算出楼高。


示意图

登山望楼示意图

侧视图:人在山上,楼在平地。两次累矩测楼底(实线),小表测楼顶(虚线)。
关键:矩间距离 d = 3丈,两次测楼底得到下股和上股,再测楼顶得到入小表。

图怎么画出来

这道题的本质是两次相似三角形

第一步:先算山到楼的水平距离

设句高为 h=6h = 6 尺,矩间距离为 d=3d = 3=30= 30 尺。

第一次测量(矩在山顶):

hx=d1L(1)\frac{h}{x} = \frac{d_1}{L} \qquad (1)

其中 d1=1d_1 = 122=12= 12 尺(下股),LL 是山到楼的水平距离,xx 是第一次矩到楼底的水平偏移。

第二次测量(矩后退 3 丈):

hx+d=d2L(2)\frac{h}{x + d} = \frac{d_2}{L} \qquad (2)

其中 d2=1d_2 = 11144=11.4= 11.4 尺(上股)。

从 (1) 得 x=hLd1x = \dfrac{hL}{d_1},代入 (2):

hhLd1+d=d2L\frac{h}{\frac{hL}{d_1} + d} = \frac{d_2}{L} hLd2=hLd1+d\frac{hL}{d_2} = \frac{hL}{d_1} + d hLd2hLd1=d\frac{hL}{d_2} - \frac{hL}{d_1} = d hLd1d2d1d2=dhL \cdot \frac{d_1 - d_2}{d_1 d_2} = d L=d1d2dh(d1d2)(3)L = \frac{d_1 d_2 d}{h(d_1 - d_2)} \qquad (3)

代入数值:

L=12×11.4×306×(1211.4)=41046×0.6=41043.6=1140 尺L = \frac{12 \times 11.4 \times 30}{6 \times (12 - 11.4)} = \frac{4104}{6 \times 0.6} = \frac{4104}{3.6} = 1140 \text{ 尺}

第二步:用小表测楼高

在第一次测量时,视线与矩的斜边交于一点。在这个点立一根小标杆(小表)。

现在看楼顶,视线擦过小标杆顶端,在小表上"吃掉"了 k=8k = 8=0.8= 0.8 尺。

这个 kk 和楼高 HH 的关系,由相似三角形给出:

Hk=Lx(4)\frac{H}{k} = \frac{L}{x} \qquad (4)

而从 (1) 我们知道 x=hLd1x = \dfrac{hL}{d_1},代入 (4):

Hk=LhL/d1=d1h\frac{H}{k} = \frac{L}{hL/d_1} = \frac{d_1}{h} H=kd1h(5)H = \frac{k d_1}{h} \qquad (5)

代入数值:

H=0.8×126=1.6 尺H = \frac{0.8 \times 12}{6} = 1.6 \text{ 尺}

等等,这只有 1.6 尺?不对——这只是小表处的"局部楼高",还要乘以一个比例因子。

实际上,刘徽的术文是:

上下股相减,馀为法;置矩间,以下股乘之,如句高而一。所得,以入小表乘之,为实。实如法而一,即是楼高。

翻译成现代公式:

H=dd1kh(d1d2)H = \frac{d \cdot d_1 \cdot k}{h(d_1 - d_2)} H=30×12×0.86×(1211.4)=2883.6=80 尺=8 丈H = \frac{30 \times 12 \times 0.8}{6 \times (12 - 11.4)} = \frac{288}{3.6} = 80 \text{ 尺} = 8 \text{ 丈}

与答案完全一致!


古人的算法解读

这道题是三望术的典型代表。刘徽的算法分三步:

第一步:上下股相减,得 d1d2=0.6d_1 - d_2 = 0.6 尺,作为"法"(分母)。

第二步:矩间乘以"下股",再除以"句高",得 30×126=60\dfrac{30 \times 12}{6} = 60 尺。这个 60 尺其实是在计算某个比例因子——它等于 dd1h\dfrac{d \cdot d_1}{h}

第三步:把这个比例因子乘以"入小表"(k=0.8k = 0.8 尺),得到 60×0.8=4860 \times 0.8 = 48 尺,作为"实"(分子)。

最后:实除以法,48÷0.6=8048 \div 0.6 = 80=8= 8 丈。

这个算法非常简洁:三步运算,一次除法,一次乘法,一次除法——没有中间步骤的复杂计算,所有数据都是直接测量得到。

回头看公式:

H=dd1kh(d1d2)H = \frac{d \cdot d_1 \cdot k}{h(d_1 - d_2)}

这个公式的几何直觉是:d1d_1d2d_2 的差值越小(两次测量视角越接近),说明楼越远,楼的微小高度差在矩上反映得越明显,因此 d1d2d_1 - d_2 在分母上——差值越小,放大的楼高越大。


这道题的精妙之处

这道题最精彩的地方,在于把"三维测量"拆解成了两步"二维测量"

  1. 先测楼底——用两次累矩(类似前两题的"望深谷"方法),确定山到楼的水平距离。
  2. 再测楼顶——在第一次测量视线与小表的交点,加一个小标杆,通过"入小表"的长度推算楼高。

为什么有了前两步还不够?因为前两步只告诉我们"楼底在哪里",但楼有多高是额外的信息。

刘徽的聪明之处在于:不需要额外去量楼底到楼顶的水平距离——因为楼是垂直的,楼底和楼顶在同一个竖直线上。所以第一次测量时的"入股之会"点,天然就是楼顶视线在矩上的投影基准。

这就好比:先锁定目标的位置,再测量目标的高度——两个独立问题,用同一个几何框架解决。


跟高中数学的关系

这道题对应的高中知识点是:

相似三角形的连续应用 + 比例线段

具体对应

  1. 相似三角形的判定:AA 判定(两个角对应相等)
  2. 比例线段:相似三角形对应边成比例
  3. 解方程:从比例关系建立方程,求解未知量

高考题型

这道题本质上是"连续两次利用相似三角形建立方程"的典型题。在高考中,这类题出现在:

  • 解三角形应用题——尤其是"测量高度/距离"类问题
  • 立体几何初步——空间中的垂直关系与投影

典型的考题形式:某人在 A 处测楼顶仰角为 α\alpha,后退 dd 米到 B 处,测楼顶仰角为 β\beta,求楼高。这正是刘徽累矩法的现代版本——只不过古人用的是"股"(水平差),现代用的是"正切"。


教学启示(可选)

这道题对高中数学教学很有启发:

  1. 测量的本质是构造相似——所有的测量问题,不管是立表、累矩还是小表,核心都是构造一对相似三角形,把未知量投射到已知量上。

  2. 三望术的思维方式——前几题是"二望"(一次差),这一题是"三望"(两次差 + 一次小表)。从二望到三望,不是简单加一个观测点,而是测量维度的升级:从"定位一个点"到"测量一个物体的尺寸"。

  3. 一步一步拆解——刘徽没有直接去算楼高,而是先算水平距离,再算楼高。这种分步拆解的思想,在任何复杂问题中都是通用的。


思考与拓展

  1. 这道题中,如果矩间距离 dd 变大,对计算结果有什么影响?反过来,如果矩间距离太小(比如 d<1d < 1 尺),会有什么问题? (提示:看公式中 dd 的位置,以及 d1d2d_1 - d_2 的大小变化。)

  2. 你能不能把这道题改成一个"现代版"的高考题?已知观测点位置、后退距离、两次仰角,求楼高。 (提示:用 tanα\tan \alphatanβ\tan \beta 代替古人的"入股"。)

  3. 刘徽为什么要在"入股之会"立小表,而不是直接在矩上标记? (提示:小表是独立的测量工具,可以自由移动;矩一旦固定,其上的刻度就只能在原地读数。)

  4. 这道题的三望法,和前面"望深谷"(第3题)的累矩法,有什么区别和联系? (提示:望深谷只测深度,登山望楼要测高度——但数学结构几乎一样,只是多了一个"小表"步骤。)


一句话总结

三望术拆解了三维测量问题:两次累矩锁定楼底位置,一次小表锁定楼顶高度——一个几何框架,分步解决两个变量。

— Y. · 2026-08-26