初学python,今天尝试用 蒙特卡洛方法 算一下圆周率
蒙特卡方法:
蒙特卡洛方法是利用随机试验求解的问题。
如上图,在正方形内随机撒点,我们用园内点的数量除以整个点的数量就是面积的比,即四分之π。
代码如下
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))