本記事ではモンテカルロ法で円周率の近似値を求めるプログラムについて紹介しています。
JavaScriptを使っています。
↓YouTube に動画もアップしてあるので、そちらもぜひご覧ください。
【早送り】モンテカルロ法で円周率を求める【プログラミング】
モンテカルロ法による円周率の求め方
DEMO
まず始めにこちらが完成品です。
モンテカルロ法とはランダムな数を使い、ある値の近似値を求める方法のことを言います。
このモンテカルロ法というものについて詳しく理解したい方は高校数学の美しい物語というサイトのこのページをご覧ください。
HTML ファイルの作成
まず、下記のような html ファイルを作成します。
JavaScript ファイルの作成
gameLoop() という関数の中でランダムな位置に点を描画する処理を行っています。
その際、 total というすべての点の数を表わす変数も1ずつプラスされます。
もしその点が円の内側だったら circle という変数を1ずつプラスします。
円内の点は赤色で描画され、それ以外の点は緑で描画されます。
最後に、
4 ×(円内の点の数 ÷ すべての点の数)
を行い、円周率の近似値である pi を求めます。
点の数が大きいほど、誤差は小さくなります。

以上がモンテカルロ法で円周率を求めるプログラムのコードです。
参考文献
The Coding Train
Approximating_Pi(GitHub)
コメント