ビュフォンの針

ビュフォンの針（ビュフォンのはり、）は18世紀の博物学者ジョルジュ＝ルイ・ルクレール、コント・ド・ビュフォンが提起した数学上の問題である。
もし床に多数の平行線を引き、そこに針を落すならば、どれかの線と針が交差する確率はどのようになるかという問題である。
積分と幾何学を使ってこの問題は解け、またこの方法を使って、モンテカルロ法で円周率の近似値を求められる。
解法.
この問題を数学的に表現すると以下のようになる: 長さ formula_1 の針を、間隔 formula_2 で平行線が描かれた床に落としたときに、線と針が交差する確率はどれくらいか？
針の中心から近いほうの線までの距離を formula_3 とし、針と線がなす角の小さい方を formula_4 とする。
formula_5 から formula_6 における formula_3 の確率密度関数は 
である。
また、formula_5 から formula_10 における formula_4 の確率密度関数は 
である。
2つの確率変数 formula_3 と formula_4 は独立なので、同時確率密度関数は積をとって
となる。
針と線が交差するのは
のときである。
針の長さに応じて2つの場合に分けて考える。
場合分け1: 針が短い場合.
formula_17 の場合、針と線が交差する確率は
となる。
この式を用いてシミュレーションによって円周率の近似値を求めることができる（モンテカルロ法）。
針を formula_19 回落としたときに針と線が formula_20 回交差したとすると
であったということなので formula_22 の値は
で近似できる。
場合分け2: 針が長い場合.
formula_24 の場合、針と線が交差する確率は
となる。ここで formula_26 は formula_27 と formula_6 の最小値である。
上の積分を行うと formula_24 のとき、針と線が交差する確率は、
または
となる。
2つ目の式において、1番目の項は針が常に少なくとも1つの線と交差するような角度で落ちる確率を表す。2番目の項は位置によっては交差しない可能性のある角度で落ちたときに針と線が交差する確率を表す。
ラザリニの実験.
1901年にイタリアの数学者マリオ・ラザリニはビュフォンの針の実験を行った。3408回針を投げて、よく知られた円周率の近似値 を得た。この近似値と との差は 3 × 10 以下である。印象的な結果ではあるが、以下の理由でフェアな実験でなかったとされている。 
ラザリニは線の巾の の長さの針を選んだがその場合、針が直線と交差する確率は である。"n" 回落下させて "x" 回交差したことから求められる の値は
 は に近いので（5桁以下の整数を使った分数の近似値でこれより近い分数はない）、"n" と "x" は下式のように書かれる:
または
である。 の近似値を求めるのであるが、 は正しい値に近いので、"n" を 213 の整数倍の数字を選ぶことによって、113 の整数倍の数になる結果を得れば実験は成功する。
213 回の実験で 113 が得られれば の小数点以下 6 桁の近似値が求まったことになり、そうでなければ実験を続ければよい。ラザリニは 3408 = 213 × 16 回の実験で、希望の近似値を得たことになった。
シミュレーションにおける依存の循環.
この実験をコンピュータでシミュレーションして円周率の近似値を求める際に、formula_5 から formula_10までの一様分布を用いてformula_4を決めてしまうと（求めようとしている値であるはずの）円周率の値への依存が発生してしまう。依存を回避するには、以下の擬似コードのように単位円の内側の点をランダムに選ぶことで円周率を使わずにformula_35の値を求めればよい。
 function simulation(l, t, n)
 h = 0
 for (iter = 0; iter < n; iter++)
 x = Uniform(0, t/2)
 repeat
 dx = Uniform(0, 1)
 dy = Uniform(0, 1)
 radius = sqrt(dx*dx + dy*dy)
 until radius <= 1
 if x <= (l/2) * (dy/radius)
 h = h + 1
 return 2*l*n / (t*h)
ここで "Uniform(a, b)" はaからbまでの一様乱数を表す。なお擬似コードでは簡単のため例外処理は省略している。