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というかたちで、π の近似値を求めることができます。