Я пытался создать эксперимент иглы Buffoon через упрощенный способ использования случайности в качестве замены вероятности. Значение pi можно найти из уравнения pi = 2 * ln/th, где l = длина иглы, n = количество раз, когда игла опускается, t = ширина линий, h = количество раз, когда игла пересекает линию , Я предположил, что l = t, тем самым уменьшая мое уравнение до pi = 2 * n/h. Теперь я сделал два кода. Код 1:Речь идет о случайном выборе в python
import math, random
h = 0.0
n = 0.0
for i in range(0,10000):
a = random.random()
if a > 0.64:
h = h+1
else:
n = n+1
re = 2*(n+h)/n
print "Value of pi is ", re
err = (math.pi - re)*100/(math.pi)
print "Percentage error is ", abs(err)
Теперь это один работает нормально и дает мне достаточно хорошие результаты. Но следующий код повторяет один и тот же ответ снова и снова. Код 2:
import random, time, math
h=1.0
n=1.0
err = 0.0
while err < 0.1:
a = random.random()
if a > 0.64:
h = h+1
else:
n = n+1
re = 2*(n+h)/n
err = (math.pi - re)*100/(math.pi)
print "Number of attempts is ", n+h
Может кто-нибудь сказать мне, почему ??
Не то, что он отвечает на ваш вопрос, но ваша программа, в обоих случаях приблизительно 2/0,64, а не Пи. Он не имеет ничего общего с иглой Буффона. –