随机生成点通过概率去估计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))

posted @ 2021-10-24 22:04  pha创噬  阅读(112)  评论(0编辑  收藏  举报