Python求圆周率(蒙特卡洛方法)

初学python,今天尝试用 蒙特卡洛方法 算一下圆周率

蒙特卡方法:

蒙特卡洛方法是利用随机试验求解的问题。

Python求圆周率(蒙特卡洛方法)_第1张图片

如上图,在正方形内随机撒点,我们用园内点的数量除以整个点的数量就是面积的比,即四分之π。

代码如下

from random import random
from time import perf_counter

DARTS = 10000 * 10000 # 撒点总个数
hits = 0.0 
start = perf_counter()
for i in range(1, DARTS + 1):
    x, y = random(), random()
    dist = pow(x ** 2 + y ** 2, 0.5)
    if dist < 1:
        hits += 1 # 落在圆内的个数
pi = 4 * (hits / DARTS)
print("圆周率的值是:{}".format(pi))
print("运行时间:{:.5f}s".format(perf_counter() - start))

 

你可能感兴趣的:(python)