1 问题
用Python格式蒙特卡洛方法计算圆周率。
2 方法
解决问题的步骤采用如下方式:
通过实验、实践证明提出的方法是有效的,能够解决开头提出的问题。
代码清单 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))
3 结语
对计算圆周率问题,用蒙特卡洛的方式,以Python格式计算出该方法是有效的。