圆周率计算(蒙特卡罗方法)

圆周率计算(蒙特卡罗方法)

假如你不知道圆面积的计算公式,那么如何求解圆周率呢?很简单,运用Python语言和蒙特卡罗方法(即随机掷点)

圆周率计算(蒙特卡罗方法)_第1张图片

做一个面积为4的正方形,并在正方形内内接一个半径为1的圆,取第一象限单独讨论。
圆周率计算(蒙特卡罗方法)_第2张图片
在这个单独拿出的第一象限中随机掷出3000个点,再用圆内的点的数量除以总的点的数量再乘以4,就可以得到一个近似的圆周率值3.16667,显然这个值的精度并不高,所以可以增加掷出的点的数量以提高精确值。

那么怎么随机掷点呢?可以调用Python标准库random模块,对(x,y)坐标在[0,1]的范围内随机模拟即可。

下面是我的代码:

import random
t = 1000*1000
num = 0
for i in range(1,t+1):
    x, y = random.random(), random.random()
    if pow((x*x + y*y),0.5) <= 1:
        num += 1
pi = 4*(num/t)
print(pi)

你可能感兴趣的:(python)