円周率πを求めるシミュレーション

2021/03/17 21:13 カテゴリ: 数学

ギャンブラーのための数学講座」でやたらシミュレータを作ったので、こちらではこんなものを作ってみました。
パソコンで扱える擬似乱数で円周率π(パイ)を求めます。

ヒトが造る乱数はあくまでも擬似乱数で真の乱数ではない、とか擬似乱数だからパチンコの抽選にはクセが出るはず、だとか色々言われる擬似乱数ですが、そんなに使えないものではありません。
是非お試しください。解説はシミュレータの後で。

このシミュレータが何をやっているのか、なぜ円周率が求まるのか解説します。

図のような1辺の長さ1の正方形と半径1の円を考えます。

まず、プログラムで0から1未満の数をランダムに発生させます。
0.125689987523...とか0.98573513876...とかが規則性なく得られます。
最小が0.000000...で最大が0.99999999...です。
この乱数を2個セットで使い、それぞれ x座標、y座標の値として使います。
すると図の正方形内のどこかに点が得られます。
この点が円内にあるかどうかを判別し、円内にあればカウントします。

これを繰り返し行うと正方形内に次々と点が打たれ、一万点打つと上のシミュレータの結果のようになります。

正方形の面積は1辺が1なので1。
一方、半径1の円の面積は π なのでその4分の1だから π/4 。
面積比が 1 : π/4 なら打たれる点の数もこの比になるはずです。

1万点打って円内が7900個の場合、比が 1 : π/4 なら
π/4 = 7900/10000
π = 4×7900/10000 = 3.16
と、π の近似値を得られるわけです。
打つ点の数を増やせば精度は上がります。

円内にあるかどうかは乱数組の x座標、y座標に対して
x2 + y2 < 1 をチェックすれば良いだけです。

ちなみにシミュレーションの結果を表示している図は縦横300ピクセルなので、表示の際には乱数組の値を300倍しています。

Sponsored Link