假如你不知道圆面积的计算公式,那么如何求解圆周率呢?很简单,运用Python语言和蒙特卡罗方法(即随机掷点)
做一个面积为4的正方形,并在正方形内内接一个半径为1的圆,取第一象限单独讨论。
在这个单独拿出的第一象限中随机掷出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)