望敌远近——一根表,一眼定敌营
立表高四尺,人目高四尺八寸,退表九百步——敌营离前表十二里半。测望类九题里最轻的一题:一根表、一次瞄准、三步四则运算。而它的全部机关,藏在人眼比表端高出的那八寸里。
原典
敌军处北山下原,不知相去远近。乃于平地立一表,高四尺,人退表九百步,遥望山原,适与表端参合。人目高四尺八寸,步法五尺。欲知敌军相去几何?
答曰:相去十二里半。
术曰:置人目高减表高余为法。置退表步以步法通寸,乘表高为实。实如法而一得相去寸,以步法约之为步,以里法约之为里。
草曰:置人目高四尺八寸减表高四尺余八寸为法。置退表九百步以步法五十寸通之得四万五千寸,乘表高四十寸得一百八十万寸为实。如法八寸而一得二十二万五千寸,以步法五十寸约之得四千五百步为相去步。以里法三百六十步约之得十二里半为敌去表所,合问。
这道题说的是什么
一支部队扎营,想知道敌营离自己多远。远近未知、不可亲量,中间还隔着雷区或者河。
办法是:在驻地竖一根四尺高的表,人往后撤九百步,回头看敌营方向——让敌营地平线上的某一点,正好与表的顶端在一条视线上。
有了这条线,剩下的全是除法。
这是《数书九章》测望类九题里体量最小的一题:一根表、一次瞄准、一步测量。讲过的重差术要两根表、两次观测才解出两个未知量;这里只求一个距离,所以一次观测就够。
但真正值得讲的是它的机关。 整个算法用到的信息只有两个:人眼比表端高出的那 8 寸,以及表高 40 寸。表高给出「视线的高度」,8 寸给出「视线下探的速率」。两者一除,敌营距离就出来了。
示意图
眼 O、表端 T、敌营地平点 E 三点共线。眼比表端高 8 寸,这 8 寸在 900 步内被走完并继续下探了整整一个表高——两个相似的直角三角形,一对 8/90000,一对 40/x。
古人的算法
四个数字先摆清
| 量 | 数值 |
|---|---|
| 表高 | 4 尺 = 40 寸 |
| 人目高 | 4 尺 8 寸 = 48 寸 |
| 退表 | 900 步 |
| 步法 | 50 寸/步 |
| 里法 | 360 步/里 |
第一步:求「法」
术文说「置人目高减表高余为法」:
这 8 寸是题眼。它表示:人眼在表端正上方 8 寸处,视线从眼睛出发,要往下压过 8 寸才追平表端。
古人把「眼高减表高」这个差叫法——除法里的除数。它决定了视线下探的速率:8 寸这个数越小,视线越接近水平,同样的距离里下探越慢;越大则越陡。
第二步:求「实」
术文说「置退表步以步法通寸,乘表高为实」:
把 900 步按步法化成 45000 寸,再乘表高 40 寸。这个乘积量纲是寸²,因为它不是长度,而是比例关系。草文里管一切被除数叫「实」、除数叫「法」,都是算筹布式的术语。
第三步:「实如法而一」
以步法约:
以里法约:
得 十二里半,与答曰合。
四个数字怎么对上的
| 步骤 | 算式 | 结果 |
|---|---|---|
| 法 | 8 寸 | |
| 相去(寸) | 225,000 寸 | |
| 相去(步) | 4,500 步 | |
| 相去(里) | 12.5 里 ✅ |
为什么这三步是对的
把几何摊开。设敌营地平点 距表脚为 ,表高 寸,眼高 寸,人退表 寸。
三点共线:眼 、表端 、敌营地平点 。
注意视线的走向:从眼睛出发,先经过表端,然后继续下探——因为表高 40 寸低于眼高 48 寸,而敌营在地平(高度 0)。所以这条线一路向下,穿过了 ,最终落到 。
这就在同一条直线上形成了两对相似的直角三角形:
第一对——人眼到表端:竖直差 寸,水平距 寸。
第二对——人眼到敌营地平点:竖直差 寸,水平距 。
两对同式(都是同一条直线与竖直、水平方向构成的角),于是对应边成比例:
交叉相乘:
展开:
移项:
于是:
正是术文的公式。 代回验算:
术文的「实」=、「法」=,除法得出的就是 。三步运算与相似三角形的推导严丝合缝。
现代数学视角
一次方程与相似三角形
不看古文,这是一个标准的相似三角形问题:
两个未知量( 和 )本需两个方程,但 可以量出来(人目高是已知常数),所以只剩一个未知量,一次观测、一个方程就够。这就是只需要一根表的原因。
为什么对差值极敏感
的分母是 寸。这意味着如果眼高测量差 1 寸,结果会大幅变化:
眼高只差 1 寸,算出 12.5 里变成 14.3 里或 11.1 里——凭空多出或少掉整整一里多。 这解释了为什么古人选表高 4 尺、眼高 4.8 寸——差 8 寸,既不太小(视线太陡,望远镜角度难以稳定)也不太大(灵敏度降得过低)。这又是一个灵敏度-稳健性权衡的设计实例。
与重差术的关系
本题的结构可以看成重差术的特例:当只需要一个距离、且另一个未知量(眼高)可以预知时,两次观测退化为一次、两根表退化为一根。
测望类九题是同一个思想的不同复杂度版本。 从这一题入门,再看后面要两根表、甚至要炬尺的多观测题,会发现万变不离「两条视线求一个交点」。
高中课本关联
知识点定位:
- 相似三角形:本题的数学内核,对应初中几何
- 解三角形:若改用角度描述,就是正切的应用
- 方程与分式:术文三步可直接翻译成代数式
对应课本例题
课本里同类问题通常这样出:
为测量河对岸目标 的距离,在此岸岸边立一标杆 ,高 2 米。人沿岸边后退 10 米至 ,眼看 与杆顶 对齐(人眼高 1.5 米)。求河宽。
设河宽 、杆高 、眼高 、后退 。由相似三角形:
代入:——分母为负,说明人退得不够远,若 (眼低于杆顶),几何关系不成立。必须选合适的表高,或让观测点足够低。这正是本题的隐含条件。
一个可以直接告诉学生的事实:古人用「目高 - 表高」这个差值,而不是直接测量角度,这让整个测量只需要杆、绳、步量——没有一件光学仪器。
思考与拓展
基础题:
把本题数字换掉:表高 3 尺,人目高 4 尺 6 寸,退表 600 步。求相去步数与里数。
提示:法 = 46 − 30 = 16 寸;实 = 600 × 50 × 30 = 900,000;相去 = 900,000 ÷ 16 = 56,250 寸 = 1125 步 = 3 里 45 步。
进阶题(灵敏度):
本题中,若人目高量错 1 寸,结果差多少?这解释了古人为什么选 8 寸的差值?
提示:, 从 47、48、49 分别算,看结果的相对变化。 这解释了古人选 4 尺表、4 尺 8 寸眼——差值既不太大也不太小,兼顾了可观测性与稳定性。
挑战题(退化):
若 (眼高恰好等于表高),会发生什么?这说明重差术对数据有什么要求?
提示:法为 0,公式失效。因为三条线重合。所以表必须低于眼,眼与表的差是整个算法的驱动力。
开放题(古今对比):
激光测距仪的误差源与本题的误差源分别是什么?哪种更可靠?
提示:本题的误差源包括目高估读、表高丈量、视线参合的判断。激光测距仪的误差主要来自大气折射与仪器对准。 有趣的是两者的误差结构相似:都对「短边」的读数极敏感。
一句话总结
一根表、一眼望、三步算——秦九韶把「看过去」变成「除一下」。测望类最轻的一题,却把重差术的骨架露得最清楚:全部机关,就在人眼高出表端的那八寸。