此代码估计 pi 的值,然后将其与实际 pi 值以一定的精度进行比较,该精度定义为“c”。然后它将'c'减小到一个较小的数字并再次进行计算。
c 的值为 .01,0.001,0.0001,0.00001。
我正在尝试做的是整个过程 10 次,并找到“d”数量的平均值,即它运行代码以达到我想要的准确度水平的次数。
import math
import random
pi = math.pi
n = 0
d = 0
ratios = []
xs = []
ys = []
c = 0.1
simulating = True
while c >= 0.0001:
while simulating:
x=random.random()
y=random.random()
xs.append(x)
ys.append(y)
if x**2 + y**2 <= 1.0:
n += 1
d += 1
ratio = 4*n*1./d
ratios.append(ratio)
if abs(ratio-pi) / pi <= c:
print "Draws Needed: ", d
break
c = c*.1
print c