∫π每天一道数学题
← 返回数书九章
数书九章 · 第 31 讲 · 2026-11-15 · 约 11 分钟

望敌远近——一根表,一眼定敌营

立表高四尺,人目高四尺八寸,退表九百步——敌营离前表十二里半。测望类九题里最轻的一题:一根表、一次瞄准、三步四则运算。而它的全部机关,藏在人眼比表端高出的那八寸里。

原典

敌军处北山下原,不知相去远近。乃于平地立一表,高四尺,人退表九百步,遥望山原,适与表端参合。人目高四尺八寸,步法五尺。欲知敌军相去几何?

答曰:相去十二里半。

术曰:置人目高减表高余为法。置退表步以步法通寸,乘表高为实。实如法而一得相去寸,以步法约之为步,以里法约之为里。

草曰:置人目高四尺八寸减表高四尺余八寸为法。置退表九百步以步法五十寸通之得四万五千寸,乘表高四十寸得一百八十万寸为实。如法八寸而一得二十二万五千寸,以步法五十寸约之得四千五百步为相去步。以里法三百六十步约之得十二里半为敌去表所,合问。

这道题说的是什么

一支部队扎营,想知道敌营离自己多远。远近未知、不可亲量,中间还隔着雷区或者河。

办法是:在驻地竖一根四尺高的表,人往后撤九百步,回头看敌营方向——让敌营地平线上的某一点,正好与表的顶端在一条视线上。

有了这条线,剩下的全是除法。

这是《数书九章》测望类九题里体量最小的一题:一根表、一次瞄准、一步测量。讲过的重差术要两根表、两次观测才解出两个未知量;这里只求一个距离,所以一次观测就够。

但真正值得讲的是它的机关。 整个算法用到的信息只有两个:人眼比表端高出的那 8 寸,以及表高 40 寸。表高给出「视线的高度」,8 寸给出「视线下探的速率」。两者一除,敌营距离就出来了。

示意图

望敌远近:视线越过表端继续下探

眼 O、表端 T、敌营地平点 E 三点共线。眼比表端高 8 寸,这 8 寸在 900 步内被走完并继续下探了整整一个表高——两个相似的直角三角形,一对 8/90000,一对 40/x。

古人的算法

四个数字先摆清

量数值
表高4 尺 = 40 寸
人目高4 尺 8 寸 = 48 寸
退表900 步
步法50 寸/步
里法360 步/里

第一步:求「法」

术文说「置人目高减表高余为法」:

48−40=8 寸48 - 40 = 8 \text{ 寸}

这 8 寸是题眼。它表示:人眼在表端正上方 8 寸处,视线从眼睛出发,要往下压过 8 寸才追平表端。

古人把「眼高减表高」这个差叫法——除法里的除数。它决定了视线下探的速率:8 寸这个数越小,视线越接近水平,同样的距离里下探越慢;越大则越陡。

第二步:求「实」

术文说「置退表步以步法通寸,乘表高为实」:

900 步×50 寸/步=45000 寸900 \text{ 步} \times 50 \text{ 寸/步} = 45000 \text{ 寸} 45000×40=1800000 寸245000 \times 40 = 1800000 \text{ 寸}^2

把 900 步按步法化成 45000 寸,再乘表高 40 寸。这个乘积量纲是寸²,因为它不是长度,而是比例关系。草文里管一切被除数叫「实」、除数叫「法」,都是算筹布式的术语。

第三步:「实如法而一」

1800000÷8=225000 寸1800000 \div 8 = 225000 \text{ 寸}

以步法约:

225000÷50=4500 步225000 \div 50 = 4500 \text{ 步}

以里法约:

4500÷360=12.5 里4500 \div 360 = 12.5 \text{ 里}

得 十二里半,与答曰合。

四个数字怎么对上的

步骤算式结果
法48−4048 - 408 寸
相去(寸)900×50×40÷8900 \times 50 \times 40 \div 8225,000 寸
相去(步)225000÷50225000 \div 504,500 步
相去(里)4500÷3604500 \div 36012.5 里 ✅

为什么这三步是对的

把几何摊开。设敌营地平点 EE 距表脚为 xx,表高 h=40h = 40 寸,眼高 g=48g = 48 寸,人退表 d=45000d = 45000 寸。

三点共线:眼 OO、表端 TT、敌营地平点 EE。

注意视线的走向:从眼睛出发,先经过表端,然后继续下探——因为表高 40 寸低于眼高 48 寸,而敌营在地平(高度 0)。所以这条线一路向下,穿过了 TT,最终落到 EE。

这就在同一条直线上形成了两对相似的直角三角形:

第一对——人眼到表端:竖直差 g−h=8g - h = 8 寸,水平距 d=45000d = 45000 寸。

第二对——人眼到敌营地平点:竖直差 g=48g = 48 寸,水平距 d+xd + x。

两对同式(都是同一条直线与竖直、水平方向构成的角),于是对应边成比例:

g−hd=gd+x\frac{g - h}{d} = \frac{g}{d + x}

交叉相乘:

(g−h)(d+x)=gd(g - h)(d + x) = g d

展开:

(g−h)d+(g−h)x=gd(g - h) d + (g - h) x = g d

移项:

(g−h)x=gd−(g−h)d=hd(g - h) x = g d - (g - h) d = h d

于是:

x=h⋅dg−h=40×450008=225000 寸x = \frac{h \cdot d}{g - h} = \frac{40 \times 45000}{8} = 225000 \text{ 寸}

正是术文的公式。 代回验算:

x=225000 寸=4500 步=12.5 里✅x = 225000 \text{ 寸} = 4500 \text{ 步} = 12.5 \text{ 里} ✅

术文的「实」=h⋅dh \cdot d、「法」=g−hg-h,除法得出的就是 xx。三步运算与相似三角形的推导严丝合缝。

现代数学视角

一次方程与相似三角形

不看古文,这是一个标准的相似三角形问题:

x=h dg−hx = \frac{h\,d}{g - h}

两个未知量(xx 和 gg)本需两个方程,但 gg 可以量出来(人目高是已知常数),所以只剩一个未知量,一次观测、一个方程就够。这就是只需要一根表的原因。

为什么对差值极敏感

xx 的分母是 g−h=8g - h = 8 寸。这意味着如果眼高测量差 1 寸,结果会大幅变化:

x=40×450007≈257143 寸=5143 步≈14.3 里x = \frac{40 \times 45000}{7} \approx 257143 \text{ 寸} = 5143 \text{ 步} \approx 14.3 \text{ 里} x=40×450009=200000 寸=4000 步≈11.1 里x = \frac{40 \times 45000}{9} = 200000 \text{ 寸} = 4000 \text{ 步} \approx 11.1 \text{ 里}

眼高只差 1 寸,算出 12.5 里变成 14.3 里或 11.1 里——凭空多出或少掉整整一里多。 这解释了为什么古人选表高 4 尺、眼高 4.8 寸——差 8 寸,既不太小(视线太陡,望远镜角度难以稳定)也不太大(灵敏度降得过低)。这又是一个灵敏度-稳健性权衡的设计实例。

与重差术的关系

本题的结构可以看成重差术的特例:当只需要一个距离、且另一个未知量(眼高)可以预知时,两次观测退化为一次、两根表退化为一根。

测望类九题是同一个思想的不同复杂度版本。 从这一题入门,再看后面要两根表、甚至要炬尺的多观测题,会发现万变不离「两条视线求一个交点」。

高中课本关联

知识点定位:

  • 相似三角形:本题的数学内核,对应初中几何
  • 解三角形:若改用角度描述,就是正切的应用
  • 方程与分式:术文三步可直接翻译成代数式

对应课本例题

课本里同类问题通常这样出:

为测量河对岸目标 AA 的距离,在此岸岸边立一标杆 BCBC,高 2 米。人沿岸边后退 10 米至 DD,眼看 AA 与杆顶 CC 对齐(人眼高 1.5 米)。求河宽。

设河宽 xx、杆高 hh、眼高 gg、后退 dd。由相似三角形:

g−hd=gd+x⟹x=h dg−h\frac{g - h}{d} = \frac{g}{d + x} \quad\Longrightarrow\quad x = \frac{h\,d}{g - h}

代入:x=2×101.5−2x = \dfrac{2 \times 10}{1.5 - 2}——分母为负,说明人退得不够远,若 g<hg < h(眼低于杆顶),几何关系不成立。必须选合适的表高,或让观测点足够低。这正是本题的隐含条件。

一个可以直接告诉学生的事实:古人用「目高 - 表高」这个差值,而不是直接测量角度,这让整个测量只需要杆、绳、步量——没有一件光学仪器。

思考与拓展

基础题:

把本题数字换掉:表高 3 尺,人目高 4 尺 6 寸,退表 600 步。求相去步数与里数。

提示:法 = 46 − 30 = 16 寸;实 = 600 × 50 × 30 = 900,000;相去 = 900,000 ÷ 16 = 56,250 寸 = 1125 步 = 3 里 45 步。

进阶题(灵敏度):

本题中,若人目高量错 1 寸,结果差多少?这解释了古人为什么选 8 寸的差值?

提示:x=40×45000g−40x = \dfrac{40 \times 45000}{g - 40},gg 从 47、48、49 分别算,看结果的相对变化。 这解释了古人选 4 尺表、4 尺 8 寸眼——差值既不太大也不太小,兼顾了可观测性与稳定性。

挑战题(退化):

若 g=hg = h(眼高恰好等于表高),会发生什么?这说明重差术对数据有什么要求?

提示:法为 0,公式失效。因为三条线重合。所以表必须低于眼,眼与表的差是整个算法的驱动力。

开放题(古今对比):

激光测距仪的误差源与本题的误差源分别是什么?哪种更可靠?

提示:本题的误差源包括目高估读、表高丈量、视线参合的判断。激光测距仪的误差主要来自大气折射与仪器对准。 有趣的是两者的误差结构相似:都对「短边」的读数极敏感。

一句话总结

一根表、一眼望、三步算——秦九韶把「看过去」变成「除一下」。测望类最轻的一题,却把重差术的骨架露得最清楚:全部机关,就在人眼高出表端的那八寸。

— Y. · 2026-11-15
望敌远近——一根表,一眼定敌营 · 数书九章第31讲