随机生成点通过概率去估计PI的数值
思路:
画出一个边长为1的正方形;然后,以正方形的中心为原点,建立一个二维坐标系,并以原点画出一个单位圆。
此时,在这个正方形里面放点,那么点落在圆里面的概率 等于 圆的面积:PI * R * R = PI / 4
P = PI / 4 -> PI = P * 4 = dis_n / n * 4
import numpy as np
def hanshu(n):
x = np.random.uniform(-1.0, 1.0, n)
y = np.random.uniform(-1.0, 1.0, n)
distance = np.sqrt(x ** 2 + y ** 2)
dis_n = len(distance[distance <= 1.0])
return dis_n * 4 / n
for i in [100, 10000, 1000000, 100000000]:
print(hanshu(i))