画满平行线的地板
1777 年,布丰伯爵乔治-路易·勒克莱尔提出了一个听起来像客厅小把戏的问题:一根长为 l 的针落在画有间距为 d 的平行线的地板上,针横跨某条线的概率 P 是多少? 下落过程中只有两件事是随机的。针的中点同样可能落在两线之间的任何位置,针也同样可能指向任何方向。沿着直线平移画面不会改变针是否相交,所以沿线方向的位置可以忽略。
短针
经典答案针对的是短针,即不长于间距的针:l ≤ d。这样的针最多只能碰到一条线,而它碰到线的概率是 P = 2l / (πd) 一个方便的设置是让针长为间距的一半,即 l = d/2。此时 P = 1/π,约为 0.318。每三次投掷中略少于一次会相交。
π 从何而来
设 x 为针的中点到最近直线的距离,则 x 的范围是 0 到 d/2。设 θ 为针与直线的夹角。针没有头尾之分,所以 θ 的范围是 0 到 π,这半圈已经包含了所有方向。 当 x 不大于半根针的投影时,针就碰到了直线: x ≤ (l/2) sin θ 每一对 (θ, x) 都是宽 π、高 d/2 的矩形中的一个点。相交的情形是正弦曲线下方的区域。对于短针,这条曲线始终在矩形之内。它的面积是 (l/2) sin θ dθ 从 0 到 π 的积分,结果是 l。除以矩形的面积 π·d/2,就得到概率 2l/(πd)。公式中的 π 就是角度轴的宽度。
估算 π
把公式反过来用,同样的投掷就能估算 π: π ≈ 2l · N / (d · N_hit) N 是投掷次数,N_hit 是与直线相交的次数。当 l = d/2 时,它就简化为 π ≈ N / N_hit 这是一种蒙特卡洛估计:随机抽取位置和角度,数出相交次数,再做除法。地板上显示的是针。旁边的矩形把同样的投掷画成点:相交的点在正弦曲线下方,未相交的在上方。
需要耐心的实验
这个估计是无偏的,但很慢。每次投掷都是一次“是”或“否”,概率接近 1/π,因此比值会长时间来回波动。几千次投掷通常能让前几位数字认得出是 π,下一位则需要多得多的次数。读数旁的 ± 是该比值的一个标准误差,用来衡量这么长的一轮实验通常离真实值还有多远。 布丰投针把画线的地板和圆直接联系了起来,但用它来计算 π 的数字却很不划算。
在 PictorX 中探索
打开布丰投针,半长针实验已经在进行:l/d = 0.50,所以读数就是投掷次数除以相交次数。“地板和图示”同时显示木板和正弦矩形。在地板上拖动可以手动放一根针,并读出它的 x 和角度。这根针会被画出但不计入统计,因此估计仍然是随机样本。 “针长等于间距”设置 l = d,此时 π ≈ 2N / N_hit。“短针”设置 l = d/4。“1,000 次投掷”投下一批针后暂停,方便你读出估计值。收藏的“正弦图”会隐藏地板并填满矩形。保存为 PNG,或在 PictorX 编辑器中打开画布。还可以搭配乌拉姆螺旋或考拉兹猜想,看看更多可视化的数学。
常见问题
布丰投针问题是谁提出的?
布丰伯爵乔治-路易·勒克莱尔,于 1777 年提出。它是几何概率中最早的问题之一。
针什么时候与直线相交?
当针的中点到最近直线的距离 x 不超过 (l/2) sin θ 时。这里 θ 是针与直线的夹角,范围从 0 到 π。
为什么答案里有 π?
针的方向是一个角。所有可能的落法填满一个宽 π、高 d/2 的矩形,而相交的情形是正弦曲线下方的面积。两块面积相除,分母中就留下了 π:对于短针,P = 2l/(πd)。
要投多少次才能得到稳定的估计?
针长为间距一半时,π 约等于投掷次数除以相交次数。几千次投掷通常能让前几位数字稳定下来,再多一位则需要多得多的次数。读数上的 ± 是估计值的一个标准误差。
如果针比间距长呢?
更长的针可能与不止一条线相交,P = 2l/(πd) 也就不再成立。本应用始终保持 l ≤ d,因此估计式仍为 π ≈ 2l·N / (d·N_hit)。
准备好尝试了吗?
在浏览器中打开 PictorX — 无需安装,无需信用卡即可启动。
试试布丰投针