Python使用随机数计算圆周率

这里需要一些数学计算,一个圆的半径若为1,整个圆的面积即为 pi 1 也就是pi。半径为1的话直径就是2,所以我们这里使用了-11分别作为x坐标和y坐标。

那这样的话我们最终生成出来的是一个正方形,这个时候我们知道这个正方形的面积是4,这样的话怎么样去找圆周率呢?可能有小伙伴结合我们上面我们计算圆的面积的公式就能猜到了,我们只需要找这个正方形里面的圆形就行了啊!

那我们怎么知道哪些点是在圆形里面呢?我们这里就可以用我们的勾股定理就能知道啦,半径为1,也就是说这个点离(0, 0)的距离不超过1就行了,之后我们有了圆形里面点的数量之后,除以正方形里面的点的数量(也就是全部的点的数量),即可得到一个小于等于1的数值,将它成以4就可以拿到我们的圆周率啦!

当然,最快速还是直接那math里面的pi。

代码

import random

n = int(input("請輸入計算的次數(越大誤差越少):"))
points = [(random.uniform(-1, 1), random.uniform(-1, 1)) for _ in range(n)]
points_in_circle = [(x, y) for (x, y) in points if x**2 + y**2 <= 1]
print((len(points_in_circle) / n) * 4)