pythonでモンテカルロ法によるπの計算をします。これが本当のMonty Python.
πを求めるアルゴリズム
monte.py
#!/usr/bin/python3
import os
import binascii
import random
# 乱数の種を初期化
f=open("/dev/random",'rb') # /dev/randomを開く
random32bitdata=f.read(4) # 4バイト読み出し
f.close() # /dev/randomを閉じる
randomhex=binascii.hexlify(random32bitdata) #16進の文字列に変換
randomseed=int(randomhex,16) # 整数に変換
random.seed(randomseed) # ランダムシードを初期化
count=0
n=10000000
for i in range(n):
x = random.random()
y = random.random()
z = x*x + y*y
count+=1 if (z<1) else 0
print(count/n*4)