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)
沒有留言:
張貼留言