Pythonでモンテカルロ

Pythonで何か書いてみる練習。
x^2+y^2=1\hspace{5}(0\leq x,\hspace{3}y\leq1)モンテカルロして円周率を求める。

import random # 擬似乱数発生
import math     # 数学関数

trials=1000000 # やれるだけ
res=range(0,trials) 

for i in res:
	x=random.random()
	y=random.random()
	z=math.pow(x,2) + math.pow(y,2)
	if math.sqrt(z) <= 1:
		res[i]=1
	else:
		res[i]=0

Decimal(4*sum(res))/Decimal(trials) # 浮動小数点はどうやったら楽に扱えるのだろうか