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

三斜求积——海伦公式的中国版本

秦九韶用三斜求积术算三角形面积,与西方的海伦公式等价,却早出一千余年。一道沙田题,把13、14、15这三个数算成了315顷。

原典

问沙田一段,有三斜。其小斜一十三里,中斜一十四里,大斜一十五里。里法三百步。欲知为田几何?

答曰:田积三百一十五顷。

术曰:以小斜乘大斜,减中斜自乘,半之,为幂。以里法乘积,开方,得积。

这道题说的是什么

有一块三角形沙田,三条边的长度分别是:

  • 小斜(最短边)= 13 里
  • 中斜 = 14 里
  • 大斜(最长边)= 15 里

已知 1 里 = 300 步,问这块田有多少顷?

仅凭三边长求三角形面积,在没有角度的信息下,这不是一件显然的事。秦九韶给出的答案是 315 顷。

示意图

三斜求积示意图

三斜田:小斜 13 里、中斜 14 里、大斜 15 里,面积 84 平方里,合 315 顷。

古人的算法

术文在算什么

这道题的核心一步是求「幂」。幂,是古算里对「方面积」的称呼——这里指的是三角形面积平方前的那个量。

把小斜记作 a=13a = 13,中斜记作 b=14b = 14,大斜记作 c=15c = 15,术文的次序可以拆成:

a2c2−(a2+c2−b22)2a^2 c^2 - \left(\frac{a^2 + c^2 - b^2}{2}\right)^2

先看中间那一项:

132+152−1422=169+225−1962=1982=99\frac{13^2 + 15^2 - 14^2}{2} = \frac{169 + 225 - 196}{2} = \frac{198}{2} = 99

再看第一项:

132×152=169×225=3802513^2 \times 15^2 = 169 \times 225 = 38025

两数相减,得幂:

38025−992=38025−9801=2822438025 - 99^2 = 38025 - 9801 = 28224

面积是幂开方后的四分之一:

S=282244=1684=42S = \frac{\sqrt{28224}}{4} = \frac{168}{4} = 42

这里得到的是 42 平方里,还差一半。 原因在于术文里的「半之」在幂之后再除一次,也就是上面这个数还要再除以 4 才是面积:

S=282244×2=84S = \frac{\sqrt{28224}}{4} \times 2 = 84

正确的完整算法应写成:

S=144a2c2−(a2+c2−b2)2S = \frac{1}{4}\sqrt{4a^2c^2 - (a^2 + c^2 - b^2)^2}

代入:

S=144×169×225−1982=14152100−39204=14112896S = \frac{1}{4}\sqrt{4 \times 169 \times 225 - 198^2} = \frac{1}{4}\sqrt{152100 - 39204} = \frac{1}{4}\sqrt{112896} S=14×336=84S = \frac{1}{4} \times 336 = 84

所以这块沙田的面积是 84 平方里。

单位换算是本题的第二道关

84 平方里不是最终答案,题目要的是「顷」。这里的换算链是本题真正考学生的部分。

1 里=300 步⇒1 平方里=3002=90000 平方步1 \text{ 里} = 300 \text{ 步} \quad\Rightarrow\quad 1 \text{ 平方里} = 300^2 = 90000 \text{ 平方步} 1 亩=240 步2⇒1 平方里=90000240=375 亩1 \text{ 亩} = 240 \text{ 步}^2 \quad\Rightarrow\quad 1 \text{ 平方里} = \frac{90000}{240} = 375 \text{ 亩} 1 顷=100 亩⇒1 平方里=3.75 顷1 \text{ 顷} = 100 \text{ 亩} \quad\Rightarrow\quad 1 \text{ 平方里} = 3.75 \text{ 顷}

于是:

84 平方里=84×3.75=315 顷84 \text{ 平方里} = 84 \times 3.75 = 315 \text{ 顷}

与答曰严丝合缝。

用海伦公式复核

今天课本里的海伦公式,形式完全不同:

s=a+b+c2=13+14+152=21s = \frac{a + b + c}{2} = \frac{13 + 14 + 15}{2} = 21 S=s(s−a)(s−b)(s−c)=21×8×7×6=7056=84S = \sqrt{s(s-a)(s-b)(s-c)} = \sqrt{21 \times 8 \times 7 \times 6} = \sqrt{7056} = 84

84,一模一样。 两条路、两种形式、相隔一千年,落在同一个数上。

现代数学视角

两个公式为什么等价

海伦公式与秦九韶公式的等价,可以在代数上看清楚。

海伦公式的根号内是:

s(s−a)(s−b)(s−c)=(a+b+c)(−a+b+c)(a−b+c)(a+b−c)16s(s-a)(s-b)(s-c) = \frac{(a+b+c)(-a+b+c)(a-b+c)(a+b-c)}{16}

把后三个因式两两相乘,用平方差整理:

(a+b+c)(−a+b+c)=(b+c)2−a2(a+b+c)(-a+b+c) = (b+c)^2 - a^2 (a−b+c)(a+b−c)=a2−(b−c)2(a-b+c)(a+b-c) = a^2 - (b-c)^2

设 P=a2P = a^2,Q=(b+c)2Q = (b+c)^2,R=(b−c)2R = (b-c)^2,则根号内等于:

(Q−P)(P−R)16\frac{(Q - P)(P - R)}{16}

另一方面,秦九韶公式的根号内除以 16 后正是同一结构。两边同乘 16、配方,就得到:

4a2c2−(a2+c2−b2)24a^2c^2 - (a^2 + c^2 - b^2)^2

这是同一个多项式的两种因式分解。 一个把四个线性因式摊开,一个把平方项团在一起。秦九韶选后者,因为算筹上做乘方比开四个因式更省事。

一个值得注意的时间差

秦九韶生卒约在 1202—1261 年间,《数书九章》成书于 1247 年。而海伦(Heron of Alexandria)通常定在公元一世纪。从时间上看,是海伦在前、秦九韶在后。 但两者是独立发展的——海伦公式经阿拉伯世界传入欧洲,秦九韶的推导不见任何外来影响的痕迹。

中国数学史里有「早多少年」的说法,多半是独立发明,不是「领先」。这一点讲给学生时要说准:秦九韶的价值不在比海伦早,而在用完全不同的路径抵达同一结论。

高中课本关联

知识点定位:

  • 解三角形:已知三边求面积,是余弦定理的反向应用
  • 平方差与配方:本题术文推导的全部骨架
  • 单位换算:题目明确给出里法三百步,就是在考换算链

高考考法:

近年高考数学文化题常考这一类。典型问法是给出三边长,问用哪个公式;或给出秦九韶术文描述,要求「翻译」成现代式子。

例如:三角形三边为 13、14、15,求面积。直接用海伦公式最省事:

S=21×8×7×6=84S = \sqrt{21 \times 8 \times 7 \times 6} = 84

13、14、15 这个组合值得记住。 它构成一个 13-14-15 三角形,面积是整数 84,内切圆半径是 4,外接圆半径是 658\frac{65}{8}——是一组在考题里反复出现的「友好数字」。

思考与拓展

基础题:

三角形三边为 5、12、13,求面积。再用秦九韶公式算一遍,验证两者一致。

提示:这是直角三角形,面积一眼可得 12×5×12=30\frac{1}{2} \times 5 \times 12 = 30。用海伦公式:s=15s = 15,S=15×10×3×2=900=30S = \sqrt{15 \times 10 \times 3 \times 2} = \sqrt{900} = 30。用秦九韶公式也应得 30。

进阶题:

把本题的「里」换成「步」:沙田三斜为 13 步、14 步、15 步,问面积多少平方步?多少亩?

提示:面积仍是 84 平方步(只要三边单位一致)。84÷240=0.3584 \div 240 = 0.35 亩。对比一下:为什么换成步之后答案这么小?因为「平方里」和「平方步」差 3002=90000300^2 = 90000 倍。

挑战题:

一个三角形三边为 6、8、10,另一个为 7、24、25。哪个面积大?大多少?不计算,能否直接判断?

提示:两个都是直角三角形(62+82=1026^2 + 8^2 = 10^2,72+242=2527^2 + 24^2 = 25^2)。前者面积 24,后者面积 84。但能否不计算判断?可以考虑:海伦公式里 s(s−a)(s−b)(s−c)s(s-a)(s-b)(s-c) 的四个因子,5、6、7、8 的乘积是 1680,18、11、14、19 的乘积远大于此——直接比被开方数即可。

开放题:

为什么秦九韶选择把公式写成「平方差配方」的形式,而海伦写成「四个线性因式连乘」的形式?从算筹运算的角度想,哪种更好算?

提示:算筹做一次乘方(自乘)是一轮操作,四个因子连乘是四轮。在数字大的时候,轮数决定出错概率。这正是算法设计的核心关切。

一句话总结

已知三边求面积,秦九韶用的是平方差配方,海伦用的是四因式连乘——数学形式不同,答案完全相同;而这道题真正的门槛,是最后那道从平方里到顷的三级换算。

— Y. · 2026-11-11
三斜求积——海伦公式的中国版本 · 数书九章第23讲