円周率をプログラミングで計算 大人も楽しいScratch
『Scratchで楽しく学ぶアート&サイエンス 改訂第2版』より
ブックコラム円周率ってどう計算する?
モンテカルロ法というのは、本来は数学の理論を駆使して計算するなどして求めるべきことを、ランダムな結果が出るテストを膨大な回数繰り返して、力技で求めてしまう手法です。
それでは、1辺の長さ200の正方形にぴったり接する円(赤い円)を考えます(図1)。たくさんのダーツを投げたとして、そのうち赤い円に何本ダーツが当たったかを数えれば、円の面積と正方形の面積の比率がわかります。正方形の面積は、200 × 200 = 40000 なので、次の式で比率が出ます。

図1 1辺の長さ200の正方形にぴったり接する円を考えよう
円の面積 / 40000(正方形の面積)= 円の内側に当たったダーツの本数 / 投げる全ダーツの本数
例えば、もしダーツがちょうど半分当たったら、円の面積も正方形の半分と考えてよいでしょう。
さて、ここで円の面積の公式を思い出してみましょう。
円の面積 = 円周率(π)× 半径 × 半径
これが円の面積を求める公式です。図1においては、次のように言えます。
円の面積 / 40000(正方形の面積)= 円の内側に当たったダーツの本数 / 投げる全ダーツの本数
この円の半径は100なので、以下で円の面積が得られます。
円の面積 = 円周率(π)× 100 × 100 = 円周率(π)× 10000
これを先の式に当てはめると、以下になります。
円周率(π)× 10000 / 40000 = 円の内側に当たったダーツの本数 / 投げる全ダーツの本数
10000 / 40000 は約分すれば 1 / 4 ですから、
円周率(π)× 1 / 4 = 円の内側に当たったダーツの本数 / 投げる全ダーツの本数
両辺に4を掛けると、次のようになります。
円周率(π)= 円の内側に当たったダーツの本数 / 投げる全ダーツの本数 × 4
投げる全ダーツの本数はわかっていますから(今回は4万本にします)、円の内側に当たったダーツの本数がわかれば、そこから円周率もわかるということです。