2020年5月29日 星期五

python pi 圓周率 機率 驗證

points = 10000
X = np.random.uniform(-1, 1, points)
Y = np.random.uniform(-1, 1, points)

# 落於圓內的點
inner_index = (X**2 + Y**2) <= 1

# 落於圓外的點
outer_index = ~inner_index

indices = (inner_index, outer_index)

X_inner, Y_inner = X[indices[0]], Y[indices[0]]
X_outer, Y_outer = X[indices[1]], Y[indices[1]]

[(X_inner, Y_inner), (X_outer, Y_outer)], indices

plt.scatter(X_inner, Y_inner,s=1,c='red',marker='o',alpha=0.8,label='C1')
plt.scatter(X_outer, Y_outer,s=1,c='blue',marker='o',alpha=0.8,label='C1')
plt.show()
percent = len(X_inner) / points
print("圈內機率:",percent)
print("圈內面積:",2 * 2 * percent)
print("實際pi:",np.pi)
print("gap:",np.pi - 4 * percent)

沒有留言:

張貼留言