python 用蒙特卡罗方法计算圆周率

蒙特卡洛方法

蒙特卡罗方法基于这样的思想:假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。借助计算机程序可以生成大量均匀分布坐标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。

蒙特卡洛方法

代码

import time
import random
hits=0
pi=0
DARTS=10000*10000
start=time.perf_counter()
for i in range(DARTS):
    x,y=random.random(),random.random()
    dist=pow(x ** 2+y**2,0.5)
    if dist <= 1.0:
        hits+=1
pi=4*(hits/DARTS)
print("圆周率的值是{:.10f}".format(pi))
print("程序运行时间为{}s".format(time.perf_counter()-start))

猜你喜欢

转载自blog.csdn.net/u013894427/article/details/80329355