∫π每天一道数学题
← 返回概率经典例读
概率经典例读 · 第 15 讲 · 2026-11-02 · 约 11 分钟

投针估 π:一根针和一个随机数

布丰投针的名气,大半来自那个断言:随便往画满平行线的纸上丢针,交点频率里藏着 π。第 003 讲已经算过 l<d 的经典情形,这一讲把它推到一般局面——针比间距还长时怎么办?答案是三段弧线拼出来的一条统一公式。而公式背后那套「用随机估算确定」的思想,比公式本身走得更远。

从一个问题开始

上一讲(第 003 讲)留下了一个伏笔:投针的成功概率是

P=2lπd,P = \frac{2l}{\pi d},

其中 ll 是针长、dd 是平行线间距。这个公式干净、漂亮,还能反推出 π\pi——取 l=dl = d,则 P=2πP = \frac{2}{\pi},量一下频率就能估 π\pi。

但它有一个没被明说的前提:针必须比间距短(l<dl < d)。

如果针比间距还长呢?一根两米的针往一米的网格上丢,它必然跨过某条线——概率应该趋近于 1,公式也该跟着变形。这一讲就干这件事。

示意图

投针的一般情形:l<d、l=d、l>d 三种局面

图:以针中点距最近线的距离 $x$ 与倾角 $\theta$ 为轴,跨线的临界点在三种区间里各有一段

核心:把问题放在 (x,θ)(x, \theta) 平面上

设平行线沿水平方向、间距为 dd。针的长度是 ll。投针的结果由两个量决定:

  • xx:针中点到下方最近那条线的垂直距离,取值范围 0≤x≤d20 \le x \le \frac{d}{2};
  • θ\theta:针与水平方向的夹角,由对称性只需考虑 0≤θ≤π20 \le \theta \le \frac{\pi}{2}。

针的两个端点到最近线的垂距是

x±l2sin⁡θ.x \pm \frac{l}{2}\sin\theta.

只要下端垂距为负、上端垂距为正,针就跨过了一条线。 换句话说,跨线的条件是

x≤l2sin⁡θ.x \le \frac{l}{2}\sin\theta.

这就是全部的几何。剩下的都是在这块长方形上算面积。

深入理解

一、l<dl < d:经典情形

当 l<dl < d,沿整个 θ\theta 区间都有 l2sin⁡θ≤l2<d2\frac{l}{2}\sin\theta \le \frac{l}{2} < \frac{d}{2},所以临界线整段都落在长方形内部。跨线区域是一条正弦曲线下方的面积

∫0π/2l2sin⁡θ dθ=l2.\int_0^{\pi/2} \frac{l}{2}\sin\theta \, d\theta = \frac{l}{2}.

总面积是 d2×π2=πd4\frac{d}{2} \times \frac{\pi}{2} = \frac{\pi d}{4}。二者相除

P=l/2πd/4=2lπd,P = \frac{l/2}{\pi d/4} = \frac{2l}{\pi d},

正是第 003 讲的公式。

二、l=dl = d:边界上发生了什么

当 l=dl = d,临界线

x=d2sin⁡θx = \frac{d}{2}\sin\theta

恰好经过长方形的右上角 (π2,d2)(\frac{\pi}{2}, \frac{d}{2})。曲线整段仍在长方形内,公式依旧成立:

P=2π≈0.6366.P = \frac{2}{\pi} \approx 0.6366.

针长等于间距时,交点概率是 2π\frac{2}{\pi}——一个不带任何参数的干净常数。这也是用投针估 π\pi 最省事的选法。

三、l>dl > d:撞到顶之后必须分两段

当 l>dl > d,l2sin⁡θ\frac{l}{2}\sin\theta 在 θ\theta 较大时会超过 d2\frac{d}{2}。这时「临界线被顶到天花板以上」,那部分区域里整个 xx 范围都跨线(因为再短的垂距也跨过去了)。

设临界角 θ0\theta_0 满足

l2sin⁡θ0=d2,即sin⁡θ0=dl.\frac{l}{2}\sin\theta_0 = \frac{d}{2}, \qquad \text{即} \quad \sin\theta_0 = \frac{d}{l}.

于是跨线区分成两块:

第一块(θ≤θ0\theta \le \theta_0):正弦曲线仍在天花板以下,面积为

∫0θ0l2sin⁡θ dθ=l2(1−cos⁡θ0).\int_0^{\theta_0} \frac{l}{2}\sin\theta \, d\theta = \frac{l}{2}\left(1 - \cos\theta_0\right).

第二块(θ0<θ≤π2\theta_0 < \theta \le \frac{\pi}{2}):整个竖条都跨线,高度恒为 d2\frac{d}{2},面积为

d2(π2−θ0).\frac{d}{2}\left(\frac{\pi}{2} - \theta_0\right).

两块相加再除以总面积 πd4\frac{\pi d}{4},得

P=2lπd(1−cos⁡θ0)+2π(π2−θ0),sin⁡θ0=dl.P = \frac{2l}{\pi d}\left(1 - \cos\theta_0\right) + \frac{2}{\pi}\left(\frac{\pi}{2} - \theta_0\right), \qquad \sin\theta_0 = \frac{d}{l}.

验证它退化为经典公式:当 l→d−l \to d^-,有 θ0→π2\theta_0 \to \frac{\pi}{2},cos⁡θ0→0\cos\theta_0 \to 0,第二项 →0\to 0,于是 P→2lπdP \to \frac{2l}{\pi d} ✓

四、一条统一公式把三种情形收拢

上面分了三段讨论,其实可以写成一条。令 θ0=arcsin⁡(min⁡(1,dl))\theta_0 = \arcsin\left(\min\left(1, \frac{d}{l}\right)\right),则

P=2lπd(1−cos⁡θ0)+2π(π2−θ0)P = \frac{2l}{\pi d}\left(1 - \cos\theta_0\right) + \frac{2}{\pi}\left(\frac{\pi}{2} - \theta_0\right)

对 l<dl<d、l=dl=d、l>dl>d 全部成立。

数值验证(取 d=2d = 2):

lll/dl/d统一公式分段公式Monte Carlo(20 万次)
0.50.250.1591550.1591550.158894
10.500.3183100.3183100.318105
21.000.6366200.6366200.636356
42.000.8372480.8372480.837457
63.000.8928800.8928800.893022

三种方法在第四位小数上对齐。一根针长短变化,概率从 0.16 爬到 0.89,但它始终可以用同一条式子和同一个 θ0\theta_0 表达。

五、拿它估 π\pi

取 l=d=1l = d = 1,则 P=2πP = \frac{2}{\pi},于是

π=2P.\pi = \frac{2}{P}.

一次 Monte Carlo 实验:投针 50 万次,记录跨线频率

P^=0.637192,π^=2P^=3.13877.\hat{P} = 0.637192, \qquad \hat{\pi} = \frac{2}{\hat{P}} = 3.13877.

真值 π=3.14159\pi = 3.14159,误差 0.0028。

慢得让人着急,但慢得有理由。Monte Carlo 的收敛速度是 1n\frac{1}{\sqrt{n}}——样本量翻一百倍,误差才降到十分之一。想靠丢针把 π\pi 算到十位,得丢 102010^{20} 次。它的价值从来不是精度,是「不需要解析解」:只要能在计算机里模拟那个随机过程,就能估任何一个难算的量。

在高中数学体系里的位置

定积分的最早样态。 本题算的是正弦曲线下的面积,方式却是「数点子」——这正是定积分思想的雏形。课堂上可以先让学生用数格子的办法估曲线下面积,再引出 ∫\int 记号,衔接极顺。

参数讨论与分段函数。 l<dl<d、l=dl=d、l>dl>d 三种情形的公式不同,但极限处连续。这是「分段讨论 + 边界连续」的标准训练,也是微积分里处处可用的思维方式。

建模与假设。 模型假设「中点均匀落在线间」「倾角均匀分布在 [0,π)[0,\pi)」「针足够细」。让学生挑出哪条假设最强、现实中最容易破,比算题更锻炼判断。

随机算法的入口。 Monte Carlo 是本世纪最重要的算法族之一。它的老祖宗就是这个投针实验——用随机估算确定,这个念头第一次被写下来是在 1777 年。

思考与拓展

  1. 复算经典公式:按第一块面积的算法自己推一遍 P=2lπdP = \frac{2l}{\pi d},并验证 l=1,d=2l=1,d=2 时 P=1πP = \frac{1}{\pi}。

  2. 验证退化:把统一公式用到 l=d=2l=d=2,说明为什么它给出 2π\frac{2}{\pi}。再用 l=0.5l=0.5 试,看是否等于经典公式。

  3. 估 π\pi:自己写一个模拟程序,投针 10 万次估 π\pi。多跑五组,记录五次的误差,看看它们是否总在同一侧。

  4. 收敛慢的问题:Monte Carlo 的误差与 1n\frac{1}{\sqrt{n}} 成正比。若要把 π\pi 估到小数点后三位,大概需要投多少次针?(提示:粗略解 1.2/n<0.0011.2/\sqrt{n} < 0.001。)

  5. 找一处假设攻击它:若针是刚性的、有粗细,模型要在哪一步修正?若平行线画得不等距呢?

  6. Monte Carlo 还能估什么:查一个用 Monte Carlo 估算的现代例子(比如高维积分、期权定价、渲染光线追踪),说明它为什么在那个场合不可替代。

一句话总结

一根针、一块布满平行线的纸,跨线频率里藏着 π\pi;把针换长,同一套面积法推出一条统一公式——而公式背后那套「用随机估算确定」的思想,比公式本身走得更远。

— Y. · 2026-11-02