Этот код оценивает значение пи, а затем сравнивает его с реальным значением пи с определенной точностью, которая определяется как «с». Затем он уменьшает «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
pi
стиля Монте-Карло, он показывает некоторые недостатки этого метода. - person Bas Swinckels   schedule 13.10.2013