床に平行線を引いて、針を適当に投げます。針が線と交わる確率には、\(\pi\)が登場するので、実験によって\(\pi\)の近似値を得られます。
18世紀の博物学者ビュフォン伯ジョルジュ=ルイ・ルクレールが提起した数学上の問題です。
針が線と交わる確率を求める

\(\theta\):針と線が作る角度 \(0\leq\theta\leq\frac{\pi}{2}\)
y:針の中心から、近い方の線までの距離
\(0\leq y \leq\frac{d}{2}\)
針と線が交わる \(\Rightarrow y \leq \frac{l}{2}\sin \theta\)
ランダムなyと\(\theta\)に対して、\(y \leq \frac{l}{2}\sin \theta\) となる確率を求めます。
上記の確率は、図の長方形内にランダムな1点を取ったときに、ブルーの範囲内(グラフ\(y=\frac{l}{2}\sin\theta\)とX軸に囲まれた範囲)である確率になります。
長方形の面積は、\(\frac{d}{2}\times\frac{\pi}{2} = \frac{\pi d}{4}\)
ブルーの部分の面積は、\(\int^\frac{\pi}{2}_0\frac{l}{2}\sin\theta d\theta = \large{\frac{l}{2}}\)
求める確率は、ブルーの部分の面積/長方形の面積 なので、\(\frac{2l}{\pi d}\) です。
実験から円周率の近似値を計算
線の間隔を針の長さの2倍( \(d=2l\) )にすると、交差する確率は\(\frac{1}{\pi}\) となり、
投げる針の本数(回数):N本(回)、線と交わる針の本数:\(i\)本とすると
\( \frac{i}{N} ≒\frac{1}{\pi}\) から\(\frac{N}{i}\)を\(\pi\)の近似値と見なせます。
Pythonで、針の位置と角度を乱数で設定して、N=1000、1000、10000で実行してみました。赤が、線と交差する針です。
プログラムはこちらの記事に掲載しています。