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

第6讲 东南望波口 —— 连索法:用一条绳子量出河口的宽度

这一讲是海岛算经里最巧妙的一题——古人在地上拉一条绳子(连索),通过两次观测绳子的"入索"长度和一次"后退"对照,就能算出河口的宽度。不需要过河,不需要乘船,一条绳子加两根木表就够了。

白话翻译

今有东南望波口,立两表南、北相去九丈,以索薄地连之。当北表之西却行去表六丈,薄地遥望波口南岸,入索北端四丈二寸。以望北岸,入前所望表里一丈二尺。又却后行去表一十三丈五尺。薄地遥望波口南岸,与南表参合。问波口广几何?

答曰:一里二百步。

术曰:以后去表乘入索,如表相去而一。所得,以前去表减之,馀以为法;复以前去表减后去表,馀以乘入所望表里为实,实如法而一,得波口广。


这道题说的是什么

前面几题,我们测的是海岛、松树、深谷、城邑和楼——这些都是"看一个或两个点"。这一题变了:测一个宽度——河口的宽度

想象一下:你站在一条河的南岸,河对岸是一个河口(波口),你需要知道河口有多宽。但你没法过河,也没有测量工具——你只有两根木表(表)和一条绳子(索)。

这就是连索法的核心场景:不过河,测河宽。

刘徽的解法分三步:

第一步:在河岸上,南北方向立两根表,相距 9 丈。两表之间用一条绳子(索)贴着地面连起来。

第二步:走到北表西边 6 丈的位置,趴在地上(薄地)看河口的南岸。视线经过北表,落在绳子的北端——绳子被"吃掉"了 4 丈 2 寸(入索北端)。再从这个位置看河口的北岸,视线穿过北表,在表上标记出"入前所望表里"1 丈 2 尺——也就是北岸比南岸多"缩进去"的距离。

第三步:再往后退,走到距北表 13 丈 5 尺的位置,趴在地上看河口的南岸。这次,视线恰好经过南表的顶端——说明你的视线刚好与南表、河口南岸三点共线。

有了这三个数据——第一次入索 4 丈 2 寸、前进位置距北表 6 丈、后退位置距北表 13 丈 5 尺、以及入所望表里 1 丈 2 尺——就能算出河口的宽度。


示意图

东南望波口示意图

俯视图:南北方向立两表相距 9 丈,绳子连于其间。观测者在北表西侧,先前进 6 丈看南岸(入索北端),再后退 13.5 丈看南岸(与南表参合)。
关键:两次不同距离的观测 + 南北岸差的"入所望表里",构成"三望"测量河宽。

图怎么画出来

这道题用的是连索法,它的数学本质是相似三角形 + 重差原理

第一步:理解几何关系

先画一个俯视图,理解场景:

  • 南北方向立两表,相距 d=9d = 9 丈。绳子(索)连接两表。
  • 河口在观测点的东侧,南北各有一岸(南岸和北岸),河口宽度 WW 未知。
  • 观测点在北表西侧,第一次在距北表 a1=6a_1 = 6 丈处,第二次在距北表 a2=13.5a_2 = 13.5 丈处。

第二步:第一次观测——看南岸

第一次观测(距北表 6 丈),视线经过北表看河口南岸:

  • 视线在绳子上截出"入索北端" p=4p = 422=4.02= 4.02
  • 这相当于:在观测点、北表、河口南岸构成的相似三角形中,绳子(长度 dd)被截出一段 pp

由相似三角形:

pd=a1L(1)\frac{p}{d} = \frac{a_1}{L} \qquad (1)

其中 LL 是北表到河口南岸的水平距离(沿东西方向)。

由此可得:

L=a1dp(2)L = \frac{a_1 d}{p} \qquad (2)

第三步:再看北岸——"入所望表里"

同一次观测,再看河口的北岸:

  • 视线经过北表,在北表上"入前所望表里" q=1q = 122=1.2= 1.2
  • 这个 qq北岸比南岸多缩进去的距离,即北岸相对于南岸的偏移量

由相似三角形:

qW=a1L(3)\frac{q}{W} = \frac{a_1}{L} \qquad (3)

其中 WW 是河口宽度(南北方向)。

第四步:第二次观测——后退验证

第二次观测(距北表 a2=13.5a_2 = 13.5 丈),视线经过南表看河口南岸,三点共线。

这意味着从后退位置看,南表恰好挡住了河口南岸。由相似三角形:

dL=a2a1L+a1(4)\frac{d}{L} = \frac{a_2 - a_1}{L + a_1} \qquad (4)

这个关系告诉我们在后退位置,视线与南表参合时,南北表距离 dd 和观测点距北表距离 a2a_2 之间的关系。

第五步:联立求解

从 (1) 和 (4),我们可以解出 LL: 由 (4) 得:

d(L+a1)=L(a2a1)d(L + a_1) = L(a_2 - a_1) dL+da1=La2La1dL + d a_1 = L a_2 - L a_1 dL+La1La2=da1dL + L a_1 - L a_2 = -d a_1 L(d+a1a2)=da1L(d + a_1 - a_2) = -d a_1 L=da1a2a1d(5)L = \frac{d a_1}{a_2 - a_1 - d} \qquad (5)

代入数值:

L=9×613.569=541.5=36L = \frac{9 \times 6}{13.5 - 6 - 9} = \frac{54}{-1.5} = -36

等等,负的?这说明我们的模型需要调整。实际上,连索法的几何关系略有不同——让我们重新审视。

正确的理解

实际上,这道题的几何关系是这样的:

第一次观测(距北表 a1=6a_1 = 6 丈):视线经过北表看河口南岸,在绳子上截出"入索北端" p=4.02p = 4.02 丈。由相似三角形:

pd=a1LL=a1dp(1)\frac{p}{d} = \frac{a_1}{L} \quad \Rightarrow \quad L = \frac{a_1 d}{p} \qquad (1)

其中 LL 是观测线到北表沿东西方向的距离。

第二次观测(距北表 a2=13.5a_2 = 13.5 丈):视线经过南表看河口南岸,三点共线。由相似三角形,\triangle 观测点—南表—河口南岸 \sim \triangle 观测点—北表—南表:

dL+a1=a2a1L+a1+a2(2)\frac{d}{L + a_1} = \frac{a_2 - a_1}{L + a_1 + a_2} \qquad (2)

等等,这又复杂了。让我们用刘徽的术文来推导,会更直接。

刘徽的术文推导

刘徽的术文说:

以后去表乘入索,如表相去而一。所得,以前去表减之,馀以为法;复以前去表减后去表,馀以乘入所望表里为实,实如法而一,得波口广。

翻译成现代公式:

第一步:以后去表 a2a_2 乘入索 pp,再除以表相去 dd

a2pd=13.5×4.029=6.03 丈\frac{a_2 \cdot p}{d} = \frac{13.5 \times 4.02}{9} = 6.03 \text{ 丈}

第二步:减去前去表 a1a_1,得"法"(分母):

6.036=0.03 丈6.03 - 6 = 0.03 \text{ 丈}

第三步:后去表减前去表,得 a2a1=13.56=7.5a_2 - a_1 = 13.5 - 6 = 7.5 丈,乘以入所望表里 q=1.2q = 1.2 丈,得"实"(分子):

7.5×1.2=97.5 \times 1.2 = 9

第四步:实除以法:

W=90.03=300 丈W = \frac{9}{0.03} = 300 \text{ 丈}

300 丈 = 1 里 200 步(1 里 = 300 步,但这里用的是"一里二百步"的答数,说明当时 1 里 = 300 步,300 丈正好对应 1 里 200 步的换算关系)。

整理成公式:

W=(a2a1)qa2pda1(6)W = \frac{(a_2 - a_1) \cdot q}{\frac{a_2 \cdot p}{d} - a_1} \qquad (6)

代入数值:

W=(13.56)×1.213.5×4.0296=7.5×1.26.036=90.03=300 丈W = \frac{(13.5 - 6) \times 1.2}{\frac{13.5 \times 4.02}{9} - 6} = \frac{7.5 \times 1.2}{6.03 - 6} = \frac{9}{0.03} = 300 \text{ 丈}

与答案完全一致!


古人的算法解读

这道题是连索法的典型代表。它和前面几题最大的不同在于:用绳子代替了矩或表的高度

连索法的核心思想:

  1. 用绳子做"水平标尺":南北方向拉一条绳子,代替了前面几题中"矩"的竖直边。观测者趴在地上,视线贴着地面,这样绳子的"入索"长度就相当于一个水平方向的比例尺。

  2. 两次不同距离的观测:第一次在 6 丈处,第二次在 13.5 丈处。两次观测点与南表、北表的相对位置不同,构造了两组相似三角形。

  3. "入所望表里"是关键:这是南北岸的"差"——同一观测点看南岸和北岸,视线在表上的偏移量。这个偏移量直接对应河口的宽度。

刘徽的算法分四步:

第一步a2pd=6.03\dfrac{a_2 \cdot p}{d} = 6.03 丈——这个值实际上是在计算:如果观测点在 a2a_2 处,通过相似关系推算出的"等效前去表距离"。

第二步:减去实际前去表 a1a_1,得 0.030.03 丈——这是"重差"的体现,两个观测点因位置不同导致的测量差异。

第三步(a2a1)q=7.5×1.2=9(a_2 - a_1) \cdot q = 7.5 \times 1.2 = 9——前后两次观测的距离差乘以南北岸的偏移量。

第四步9÷0.03=3009 \div 0.03 = 300 丈——这个巨大的比值(300 倍)意味着:观测位置微小的变化,对应着河口宽度很大的变化。这就是"重差术"的精髓——用小的测量差,放大到大的未知量


这道题的精妙之处

这道题最精彩的地方,在于连索法的优雅设计

  1. 不过河,量河宽——这是最直接的实用价值。古人不需要过河,不需要乘船,在地面上就能测出河口的宽度。

  2. 绳子代替高度——前面几题用的都是"矩"(竖直的),这一题用的是"索"(水平的)。竖直的测量对应高度/深度,水平的测量对应宽度——古人已经掌握了这种"维度转换"的思维。

  3. 双观测点 + 双目标——第一次观测看南岸和北岸两个目标,第二次观测只看南岸做验证。这就是刘徽所说的"三望"——比"二望"多了一个观测维度。

  4. 入索 + 入表里配合——"入索"提供横向位置信息,"入表里"提供纵向(南北方向)的信息。两个数据配合,就能解出未知宽度。

这就像现代测量学中的交会法(intersection):从两个已知点观测同一个未知点,通过角度差确定未知点的位置。只不过古人用的是"相似三角形"而不是"三角函数"——思路完全一样,工具不同。


跟高中数学的关系

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

相似三角形的综合应用 + 比例线段 + 解方程

具体对应

  1. 相似三角形的判定:AA 判定(两个角对应相等)
  2. 比例线段:相似三角形对应边成比例,建立比例方程
  3. 解分式方程:从比例关系建立方程,求解未知量
  4. 重差原理:两次测量值的差与未知量之间的比例关系

高考题型

这道题本质上是"从两个不同位置观测同一目标,建立方程组求解"的经典题。在高考中,这类题出现在:

  • 解三角形应用题——尤其是"测量距离/宽度"类问题
  • 平面几何——相似三角形的综合应用
  • 函数与方程——建立方程模型求解实际问题

典型的考题形式:某人站在河岸上,在 A 处看对岸某点,测得视线与河岸的夹角为 α\alpha,后退 dd 米到 B 处,再测夹角为 β\beta,求河宽。这正是刘徽连索法的现代版本——只不过古人用的是"入索"(绳子上的截距),现代用的是"正切"。


教学启示(可选)

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

  1. 测量工具的创新——连索法告诉我们:测量工具不一定要复杂。一条绳子 + 两根木表,就能解决"不过河量河宽"的问题。这启发学生:数学方法比工具更重要。

  2. 俯视图 vs 侧视图——前面几题都是侧视图(高度/深度),这一题是俯视图(宽度)。不同的视图对应不同的测量维度,但数学结构完全一样——都是相似三角形。

  3. "三望"的升级——从"二望"(两次观测)到"三望"(三次观测),不只是加一次观测,而是增加了测量维度:从"测一个点"到"测一个物体的尺寸"(宽度)。

  4. 重差术的通用性——连索法、累矩法、重表法,三种方法看似不同,本质上都是"重差"——利用两次测量的差值推算未知量。这种"差"的思想,在微积分中演变成了"微分"。


思考与拓展

  1. 这道题中,如果绳子长度 dd 变大(比如从 9 丈变成 18 丈),对计算结果有什么影响?反过来,如果绳子太短会怎样? (提示:看公式中 dd 在分母中的位置,以及它在 a2pd\dfrac{a_2 \cdot p}{d} 中的作用。)

  2. 你能不能把这道题改成一个"现代版"的高考题?已知观测点位置、后退距离、两次视线与河岸的夹角,求河宽。 (提示:用 tanα\tan \alphatanβ\tan \beta 代替古人的"入索"和"入表里"。)

  3. 连索法为什么一定要"薄地"(趴在地上)观测?如果站着看会有什么问题? (提示:视线高度会影响相似三角形的比例关系;"薄地"保证了视线和地面在同一水平面上。)

  4. 这道题的"入所望表里"(1 丈 2 尺)和前面"望松"题的"入表"(2 尺 8 寸)有什么本质区别? (提示:前者是南北岸的宽度差,后者是松树从地面到树梢的高度差——一个是水平方向的差,一个是竖直方向的差。)


一句话总结

连索法用一条绳子代替了高度测量:不过河、不乘船,在地面上拉一条绳子、站两个位置,通过"入索"和"入表里"两个数据,就能算出河口的宽度——重差术从"竖"做到了"横"。

— Y. · 2026-08-27