導入
ビュフォンの針は、 18世紀のフランスの科学者ジョルジュ・ルイ・ルクレール・ド・ビュフォンによって1733年に提案された確率実験です。この実験は、数値 Pi の近似を提供します。その分析は、2 次元の連続確率空間の単純なケースを実装します。

実践的なプロセス
寄木細工の床に何度も針を投げる作業です。寄木細工の床は、同じ幅の平行な板で構成されています。針が床の[少なくとも] 1 つの溝にまたがって落ちた回数 (「良好な」場合) を総投げ数と比較して数えます。投げる回数が増えると、商が特定の数値に近づき、 π が求められるようになります (たとえば、針の長さがボードの幅と等しい場合、この数値は2 ⁄πになります) 。
数学の勉強
どちらか:
- l寄木細工のスラットの幅に対応する正の実数。
- 針の長さに対応する正の実数を持ちます。
- θ寄木細工の床の溝によって形成される幾何学的な角度に対応する0 ~ π/2の間の実数値。
- r針の中心から最も近い溝までの距離に対応する正の実数。
仮説に従って、すべての対称性を使用すると、次のように考えることができます。
- θ は[0;π / 2]に関する連続一様法則に従います。
- rは[0; l /2]
シンプルな幾何学的な視点
この針をn 回投げる ( n は十分大きい) と考えてください。次に、端から端まで配置された針のすべての異なる位置がn個の辺を持つ多角形を形成すると考えることができます。 nが大きいほど、この多角形は円に近づきます。この円の周長P は次のようになります。
カットされる溝の数Rは、 R = 2 D / lで与えられます。最後に、針が溝を切る確率は次の式で与えられます。
- $$ {p = \frac{R}{n} = 2\times \frac{D}{l}\frac{1}{n} = 2 \times \frac{na}{\pi \times l \times n}} $$
そして簡素化する
- $$ {p = \frac{2a}{\pi\times l}} $$
境界例
孤立した投げを考えてみましょう。針がその先端で溝の点に重ならずに触れている場合、斜辺が針の半分で、一方の辺が長さrで、もう一方の辺が溝の一部である直角三角形が得られます。すると、次のようになります。
不利なケース
したがって、針が完全にボード上にある場合は、次のようになります。

有利なケース
少なくとも 1 つの溝 (最も近い溝) と重なる場合は、次のようになります。
分析
ここでは単純なケース ( a < = l ) を扱います。
離散確率の場合、「合計」ケースに対する「有利な」ケースの商を形成するのと同じように、
我々は持っています
(空間( r ,θ)と極限を描画します):
多数回投げた後は、大数の法則に従って、実際の値が理論値に近づく傾向があります。
実際、 p をP を推定する比率であるとします。その場合、次の推定量が得られます。
分析$$ {l \leq a} $$
ここでは、針が寄木細工の板の間の距離よりも長い場合を扱います (編み針を考えてください)。 「有利な」ケースは依然として「針が(少なくとも)寄木細工の板を横切った」ということです。
「不利な」ケースは数学的に表現するのが簡単なので、次のようになります (空間( r ,θ)と極限を描画します)。

中間の手順を実行して、以下を取得します。
l = aの場合、前の式が見つかることを確認します ( l > = a : 短い針で確立)。
この式では、引き続きπ を(1 − p )の関数として推定することができます。ここで、 (1 − P )にはπ が係数として含まれる (実際に行われる) ため、 p はP を推定する割合です。
ポーズをとることで
これは、期待どおり、非常に大きい場合は 1 に近づく傾向があります。
デジタルシミュレーション
$$ {\frac al} $$ | 0.1 | 0.2 | 0.5 | 1 | 2 | 5 | 10 | 100 |
|---|---|---|---|---|---|---|---|---|
| 正確な式 | 0.4 | -0.1 | 0.1 | 0.001 | -0.1 | -0.06 | -0.7 | 1.05 |
| 近似式 | – | – | – | – | -2 | -0.5 | -0.3 | 1.05 |
結論:
- l = aの場合に最良の推定値が得られます
- 推定値の低下は急速ですが、すぐに安定します
- 仮説l > = a は実験を行うのに必要ではない
- 近似式(大規模な場合)は、その応用分野で良い結果をもたらします
シミュレーションプログラム(Python)
# l=2 とし、[0,1] で一様な x を生成する必要があります。 # [0, pi/2] で一様なシータも生成する必要があります。 # 次のようになります。 # sin(theta) > 2x/a の場合は成功#それ以外の場合は失敗しますインポートランダムインポート数学Max=1000000 for a in [ 0.2, 0.4, 1, 2, 4, 10, 20, 200 ] : Count=0 for i in range ( Max ) : x=ランダム。均一( 0,1 ) t=ランダム。 uniform ( 0, math . pi /2 ) if math . pi /2 ) sin ( t ) > 2 * x/ float ( a ) : Count+=1 if a < =2: print a/2.,100 * ( a/ ( float ( Count ) / float ( Max ) ) - math . pi ) /数学。 pi else : P= float ( Count ) / float ( Max ) print a/2.,100 * ( float ( a ) / ( P-1. ) * ( 1.- math . sqrt ( 1- ( 2/ float ( a ) ) ** 2 )) - 2/ ( P-1. ) * math asin ( 2./float ( a ) ) - math pi ) / math . piプリントa/2.,100。 * ( 2/ float ( a ) / ( 1.-P ) - math . pi ) / math .円周率
参考資料
- Agulla de Buffon – catalan
- Buffonova jehla – tchèque
- Buffonsches Nadelproblem – allemand
- Buffon’s needle problem – anglais
- Aguja de Buffon – espagnol
- Buffonen orratza – basque
