【发布时间】:2020-08-27 16:26:24
【问题描述】:
我正在尝试从 Monte Carlo 方法中绘制 pi 的直方图分布,但每次运行模拟时,我得到的直方图要么向左或向右倾斜,而不是近似对称且峰值在附近的直方图3.14。输出直方图也有一些差距,我认为我正确地逼近了 pi。我的代码如下:
[...(importing relevant modules)]
N = 1000 #total number of random points
circlex = []
circley = []
squarex = []
squarey = []
pis = []
for i in range(1, M + 1):
x1 = random.uniform(-1,1)
y1 = random.uniform(-1,1)
if x1**2 + y1**2 <=1:
circlex.append(x1)
circley.append(y1)
else:
squarex.append(x1)
squarey.append(y1)
pi = (4.0*len(circlex))/i
pis.append(pi)
print(pi)
print(pis)
plt.hist(pis, color = 'g')
输出:
我错过了什么或做错了什么?
【问题讨论】:
标签: python python-3.x for-loop matplotlib montecarlo