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))
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
