Python基础——详解蒙特卡洛方法计算圆周率

1.分析:
圆的面积公式:S = ╥r²
则四分之一个圆的面积为:S 1/4圆 = 1/4/╥r²
故想知道╥的值,就需要先知道圆的面积。

在这里,我们使用蒙特卡洛方法计算圆的面积。

蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。

我们得知下图正方形的面积是1*1 = 1,圆的半径是1,带入上式,得:
╥ = 4乘以 1/4圆

由蒙特卡洛方法在正方形区域内随机撒点,可得圆面积与方形面积的比值,方形面积又是确定的,可得圆面积,有了圆面积,就能得到╥的值。
Python基础——详解蒙特卡洛方法计算圆周率_第1张图片

2.代码

#圆周率的计算
from random import random
from time import perf_counter

#随机投点数
DARTS = 10000 * 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))

你可能感兴趣的:(Python,python,算法)