Python蒙特卡罗法测圆周率

 

#圆周率的计算-蒙特卡罗法
from random import random
from time import perf_counter
darts = 1000*1000
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.0:
        hits = hits + 1
pi = 4 * (hits/darts)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))

如上述代码段,利用了蒙特卡罗法的思想。

还记得蒲丰的投针实验吗?

这里的圆周率,正是通过计算机在一个田字格内产生大量随机数,统计落在四分之一圆内的数量来估算的。你学会了吗?:)

 

你可能感兴趣的:(仰望IT天空——Python,python)