解説
1辺1の正方形(0〜1)の中にランダムな点を多数打つと、原点中心・半径1の四分円の中に入る点の割合は (円の面積)/(正方形の面積) = (π/4)/1 = π/4 に近づきます。
よって『円内の点の数 ÷ 全部の点の数 × 4』でπを推定できます。これがモンテカルロ法です。
乱数と確率を使って、図形の面積や難しい数値を近似する代表的な手法です。
書き方
import random / random.seed(値) で乱数固定。 ・random.random(): 0以上1未満の小数の乱数を返す。 ・x*x + y*y <= 1.0 で四分円の内側か判定。 ・pi = 4 * inside / N で割合からπを推定する。
書いて動かす
この回の課題
正方形にランダムな点を1万個打ち、四分円に入った点の割合からπをモンテカルロ法で推定し、実際の値と比べてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。