18世纪博物学之父布丰:随意往地板上扔针,竟可以算出圆周率?
问题背景
在18世纪的法国,有一位博物学家、数学家,叫布丰。
咱们的小学课文《松鼠》便出自他笔下;他还写了巨著《自然史》……但是咱们今天要说的,是他提出的一个数学问题——“布丰投针问题”。
布丰投针问题:设我们有一个以平行且等距木纹铺成的地板,随意抛一支长度比木纹之间距离小的针,求针和其中一条木纹相交的概率。
布丰以此概率提出了计算圆周率的新方法:随机投针法。
不知道你现在的心情是不是这样:
反正我是。
随便往地板上扔针,竟然能算出圆周率???这两件事,有一点点的关系么?……
显然,这东西是能被严谨证明的(要不然,我为啥拿出来发公众号)。证明过程请看下文——
数学原理
方法一
在上图中,如果点代表针的中点,直线是平行线中的一条的话,针所有可能的位置(无论相交与不相交)便组成了下图这个圆。其中,针与平行线相交的所有位置组成的图形就是阴影部分。
两侧完全对称,因此只取半圆考虑即可。
针所有可能的位置是不随针中点与平行线距离的改变而改变的。因此,当考虑 y 的变化时,针所有可能的位置情况组成一个底为 S1,高为 d/2 的半圆柱。
针与平行线相交的所有可能位置随y变化而变化,因而组成如下图形。
取 V2 的一块微元(体积的微分):
如果你看完之后是这个情况:
先别走,考虑看看方法二吧,它比方法一简单那么一点点。
方法二
为了方便分析,取平面内一个结构单位,该结构单位由某条平行线的某部分和一根针组成。
如图,由于y可以取0到d/2的任何数,因此针中点的所有可能性(所有y)构成长为d/2的线段。随着θ的变化,该可能性并不会变化,因此所有可能性形成面积为的粉色矩形。易得:
当针中点的位置满足其与平行线相交时,其可能的值为小于等于l/2sinθ 的所有值。随着θ的变化,该可能性变化,因此所有可能性形成面积为S2的蓝色图形。
计算机模拟实验
经过一大串证明后,咱们就来自己投针试试。
为此,我编了个Python程序,可以模拟随机投针的过程,还能生成图像!(感谢信息技术考学让我学会用turtle模块画图……)
于是,我先做了6次扔100根针的实验。针的长度为40,平行线间距为50。即在这个实验中,l=40,n=100,d=50。结果如下:(π的计算精度取小数点后两位)
啊这……好像并不是很准。这是由于只有100根针,随机总量不够大。
并且话说回来,计算机这么厉害的工具,只让它模拟100根针显然屈才。因此,我打算好好压榨利用它,让它进行了500次扔一百万根针的模拟。
100万根针不方便生成图像,列举数据也是既麻烦又不直观的,所以我把输出的值做了个散点图:
可见结果与 π 已经相当接近了。
总结
该方法之所以可以估算π值,是因为进行了转化、变换得到的等式中带有π。
例如,方法二中π的来自于 S1,更本质地说,是来自于针与平行线夹角的积分上限(范围)。实际上这个 π 是从角度中得到。
由这个思路,我们或许可以想出更多估算值的方法——构造等量关系,并使等量关系中带有 π。而构造出的一个很好的思路便是使角度成为一个决定性的量。