ビュフォンの針シミュレーター 戻る
確率・モンテカルロ

ビュフォンの針シミュレーター — 確率でπを推定する

等間隔の平行線が引かれた床に、針をランダムに投げる古典実験。線と交差する確率から円周率πを推定します。本数・針長さ・線間隔を変えて、確率と幾何の不思議なつながりを体験しましょう。

パラメータ設定
針の本数 N
針の長さ ℓ
mm
線間隔 d
mm
乱数 seed
針の長さ ℓ が線間隔 d を超えています。ビュフォンの公式は ℓ ≤ d でのみ成り立ちます。ℓ または d を調整してください。

乱数は決定論的な線形合同法(LCG)で生成されるため、同じ seed では結果が完全に再現します。

計算結果
交差数 m
推定確率 m/N
推定 π
相対誤差
平行線床と落下した針

赤=線と交差した針/青=交差しなかった針(表示は最大200本までサンプル抽出。集計は全 N 本で実施)

理論・主要公式

平行線間隔 $d$、針の長さ $\ell$($\ell \le d$)。針の中心の最近線からの距離 $y$、針と線のなす角 $\theta$ を独立な一様分布とすると、針が線と交差する条件は:

$$y \le \tfrac{\ell}{2} \sin\theta$$

交差する確率を積分で求めると:

$$P = \frac{2\ell}{\pi d}$$

$N$ 本投げて $m$ 本が交差したとき $m/N \approx P$ なので、π の推定値は:

$$\hat\pi = \frac{2\,\ell\,N}{d\,m}$$

大数の法則により $N \to \infty$ で $\hat\pi \to \pi$。誤差は $1/\sqrt{N}$ に比例して減少します。

ビュフォンの針シミュレーターとは

🙋
針を投げてπが出てくるって、本当にそんなことできるんですか?マジックみたいなんですけど。
🎓
ざっくり言うと、これは18世紀の数学者ビュフォンが考えた古典実験だ。床に等間隔の平行線を引いて、長さ ℓ の針を本気でランダムに投げる。線と交差する確率は、なんと $P = 2\ell/(\pi d)$ になる。πが分母に出てくるんだよ。だから N 本投げて m 本交差したら、$\pi \approx 2\ell N / (d m)$ で逆算できる。上のシミュレーターで「投げ直す」を押してみて。デフォルトの 5000 本で、たぶん 3.14 のあたりが出るよ。
🙋
なんで角度と位置をランダムにすると πが出るんですか?
🎓
これがおもしろいところで、針の角度 θ をランダムに選ぶと、針の縦方向への射影は $(\ell/2)\sin\theta$ になる。中心位置 $y$ と角度 $\theta$ を独立な一様乱数として、交差条件 $y \le (\ell/2)\sin\theta$ の確率を積分で求めると、$\sin\theta$ を $[0, \pi/2]$ で積分する操作が出てくる。その値が「2」なんだ。$2/(\pi/2 \cdot d/2) \cdot \ell/2 = 2\ell/(\pi d)$ と整理すると、最初から πが分母に居座る。確率と幾何のすごく綺麗な接点だね。
🙋
本数を増やすと精度はどんどん良くなるんですか?「seed」を変えると結果が変わるのはなんでですか?
🎓
精度は上がるけど、増え方はかなり緩やかだ。モンテカルロ法の標準誤差は $1/\sqrt{N}$ に比例するから、誤差を10分の1にしたいなら本数を100倍にする必要がある。あと、このツールは「決定論的な線形合同法(LCG)」で乱数を作っているから、同じ seed なら全く同じ結果が出る。seed を変えると別の「投げ方の物語」になって、同じ N でも m が少し変わる。これが「サンプリングのばらつき」だよ。実務でも、結果を再現したいときは seed を固定するのが鉄則だ。
🙋
「ℓ が d より大きいとダメ」って警告が出ました。なんでですか?
🎓
いい質問だ。$\ell \le d$ のとき、針はせいぜい1本の線としか交差しない。だから「交差した本数」を素直に数えれば $P = 2\ell/(\pi d)$ が成り立つ。でも $\ell > d$ になると、針が2本以上の平行線を同時に跨ぐことがある。そうなると確率の公式は「一般化ビュフォンの公式」になって、$\arccos$ や追加の積分が出てきて式が一気に複雑になる。教育用としては $\ell \le d$ の範囲で押さえておくのが圧倒的にわかりやすいから、本ツールはそこで線を引いて警告を出すようにしているよ。

よくある質問

理論上、相対誤差はおおよそ $1/\sqrt{N}$ に比例します。N=5,000 なら誤差は数パーセント以内、N=100,000 なら 0.5% 程度に収まることが多いです。ただし1回の試行のばらつきもあるため、seed を変えて何度か試して結果が安定するかを確認するのが実務的なやり方です。
交差確率 $P = 2\ell/(\pi d)$ なので、ℓ/d 比が大きいほど交差する針が増えます。例えば ℓ=d だと P ≈ 0.637、ℓ=d/2 だと P ≈ 0.318 です。交差数 m が増えるほどπの推定値の安定性が上がる傾向があるため、教育的には ℓ を d に近づけると良いです。本ツールの初期値は ℓ=5、d=10 で P ≈ 0.318(=1/π)になっています。
確率1で一致することは決してありません。m は整数なので $\hat\pi = 2\ell N/(d m)$ も離散的な値しか取れず、無理数の π にぴったり一致するのは原理的に不可能です。ただし N を増やすと取りうる値の刻みが細かくなり、π に任意の精度で近づきます。これが「分布が収束する」という意味の収束です。
影響します。本ツールは教育用に線形合同法(LCG)を使っており、数千〜十万本程度の試行なら問題なく動作します。しかし数百万本以上のシリアスなモンテカルロでは、LCG の短い周期や偏りが推定値にバイアスを与え得るため、メルセンヌ・ツイスタや PCG など現代的な擬似乱数アルゴリズムを使うのが望ましいです。同じ seed で結果が完全再現する点は教育・検証用途では大きなメリットです。

実世界での応用

モンテカルロ法の最も古典的な入門例:ビュフォンの針は、確率論で決定論的な定数(π)を求める最初期の例として、モンテカルロ法を学ぶ際の入り口として今も使われ続けています。「ランダムサンプリングで難しい積分や定数を推定する」というモンテカルロ法の核心アイデアが、針を投げるだけで体感できます。

CAE での確率論的解析:有限要素解析(FEM)で材料強度や寸法のばらつきを考慮した信頼性解析(MC-FEM)を行う際、根底にあるのはビュフォンと同じ「ランダムサンプリング → 確率の推定」という発想です。橋梁や航空機構造の破壊確率を、入力パラメータをランダムに変えながら何千〜何万回のFEM解析で求めます。

金融工学・リスク評価:オプション価格のモンテカルロ評価や、ポートフォリオの VaR(Value at Risk)推定でも、ランダムサンプリングで未知量を求める手法が中心です。ビュフォンの針で学ぶ「サンプル数 N と誤差の関係」は、そのまま VaR 計算の収束評価に活きます。

レンダリング(光線追跡):3DCG のフォトリアルレンダリングでは、各画素ごとに光の経路をランダムにサンプリングして光量を積分計算します。これも本質的にはビュフォンと同じ枠組み(ランダムな線で何かを測る)であり、サンプル数を増やすほどノイズが減って画像が滑らかになる様子は、ビュフォンの針で π が安定していく様子と同じ現象です。

よくある誤解と注意点

最も多い誤解は、「本数を増やせば確実にπに近づく」と単調収束を期待してしまうことです。実際には、N を増やしても推定値は揺らぎながら近づきます。途中で一時的にπから遠ざかることも普通に起きます。シミュレーターで seed を 1, 2, 3 ... と順に変えてみてください。同じ N=5000 でも結果が数パーセント程度ばらつくのが確認できます。「1回の実験で当たり」を期待せず、複数回の試行で分布を見るのがモンテカルロの正しい使い方です。

次に、「針の長さを長くすればするほど精度が上がる」と思い込むこと。確かに ℓ を大きくすると交差確率が上がり交差数 m が増えるので、計算は安定します。しかし $\ell > d$ になると、ビュフォンの単純公式 $P = 2\ell/(\pi d)$ は成立しなくなり、複数本の線を同時に跨ぐ場合を含む一般化公式が必要になります。本ツールでは $\ell > d$ で警告を出して計算を停止していますが、教科書や Web の解説で「とにかく針を長くすれば良い」と書いてあったら要注意です。

最後に、seed を変えずに「精度を上げよう」として N だけ増やすミス。決定論的乱数では、同じ seed なら「すでに引かれた乱数列の続き」を使うだけなので、N を増やしてもサンプリングの独立性は保たれます。しかし「seed を固定したまま結果を平均する」ことはできません。再現性を担保しつつ統計的なばらつきを評価したい場合は、seed を 1〜M で変えて M 回の独立実行を行い、その平均と標準偏差を取るのが正しい方法です。本ツールの seed スライダーは、この「独立試行の入れ替え」を簡単に体験するためのものです。