利用蒙特.卡罗方法计算圆周率近似值
什么是蒙特.卡罗方法?
答:蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。
正方形内部有一个相切的圆,它们的面积之比是π/4。
这里假设正方形的边长为2,也就是[-1,1]之间
from random import randomdef estimatePI(times):hits = 0for i in range(times):x = random()*2 – 1 #random()生成介于0和1之间的小数y = random()*2 - 1 #该数字乘以2再减1,则介于-1和1之间if x*x + y*y <= 1: #落在圆内或圆周上hits += 1return 4.0 * hits/times
#这里的times为正方形的面积,hits为圆的面积,当正方形的面积越来越大的时候,Π = 4.0 * hits/times的值越精确
print(estimatePI(10000))
print(estimatePI(1000000))