Python プログラムサンプル
円周率(π)を近似的に求めるプログラムを通して、Google Colaboratoryの使い方とPythonプログラムの書き方を体験してみましょう。
# モンテカルロ法による円周率の導出
# ライブラリの読み込み import math import random # 初期化 n = 1000 cnt_in = 0 cnt_out = 0 # シミュレーション for i in range(n): # 0.0 - 1.0 のランダムな「雨粒」 x = random.random() y = random.random() # 4分円の中に落ちた数をカウント r = math.sqrt(x**2 + y**2) if r <= 1.0: cnt_in += 1 else: cnt_out += 1 # 円周率の近似値 Pi = cnt_in / n * 4 # 結果の表示 print("Num:", n) print("IN:", cnt_in) print("OUT:", cnt_out) print("Pi:", Pi)
Wikimediacommons File:Montecarlo pi2.PNG
Q = π*r*r / 4 S = r*r よって、Q / S = ( π*r*r / 4 ) / ( r*r ) = π/4
π = Q / S * 4
正方形全体に降る雨粒の数:4分円の中に降る雨粒の数 ≒ S:Qとなり、雨粒の数が多くなれば、S:Q の比率に一致します。
π = 4分円の中に降る雨粒の数 / 正方形全体に降る雨粒の数 * 4というかたちで、π の近似値を求めることができます。