モンテカルロ法を使用して pi (pi = gamma(1/2)**2) を推定するコードを Python で記述しようとしています。sqrt(pi) は、関数 gamma(x=1/2) を囲む正方形の面積に、生成されたランダム ポイントの総数を掛けて、関数内で終了し、ポイントの総数で割ったものであるというコードを書く必要があります。生成されます。
私が話しているコードの種類を示すために、ここではガンマ関数を使用せずにそれを行いました (まだモンテカルロ法です)。ここで Pi は、生成されたポイントの総数で除算された、ユニット 1 の円で終了するポイントの数を 2x2 平方倍した面積として評価されます。ポイントが単位円内にあるための基準は、ピタゴラス (np.sqrt(x x+y y)<=1) です。
inside =0
n=100000
for i in range(0,n):
x=np.random.rand()
y=np.random.rand()
if np.sqrt(x*x+y*y)<=1:
inside = inside+1
pi = 4.0*inside/n
print pi
Gamma(1/2) を囲む領域をどのように決定するのか、関数内で終了するポイントの基準がここにあるのかどうかはわかりません。
誰にもアイデアがありますか?
ありがとう!