在 Python Monte Carlo 方法中使用 Gamma 函数估计 pi

Estimate pi with Gamma function in Python Monte Carlo method

我正在尝试使用 Monte Carlo 方法在 python 中编写代码来估计 pi(其中 pi = gamma(1/2)**2)。我应该写一段代码说 sqrt(pi) 是包含函数 gamma(x=1/2) 的正方形的面积乘以最终在函数内部生成的随机点总数,除以点总数产生。

只是为了说明我在说什么样的代码,这里我没有使用 Gamma 函数(仍然是 Monte Carlo 方法)。这里 Pi 的计算方法是 2x2 平方的面积乘以单元 1 圆中结束的点数除以生成的点总数。一个点在单位圆内的准则是毕达哥拉斯(np.sqrt(xx+yy)<=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) 的区域以及点在函数内结束的标准是什么。

有人有想法吗?

谢谢!

从你的问题来看,我觉得你正在服用PHY324。 ;) 我对同一件事感到困惑。我设置了代码,我不是 python 专家,但也许这可能会有所帮助。

import random
from math import *

number_of_points = 10000
points_in = []
points_outside = []

for i in range(number_of_points):
    rand_number1 = random.random()
    rand_number2 = random.random()
    if rand_number2 < (exp(-1*rand_number1))*(rand_number1**(-0.5)):
        points_in.append(1)
    else:
        points_outside.append(1)