我试图通过一种简单的方式使用随机性来代替概率来创建 Buffoon 的针实验。pi 的值可以从等式 pi = 2*ln/th 中找到,其中 l = 针的长度,n = 针落下的次数,t = 线的宽度,h = 针穿过线的次数。我假设 l = t 从而将我的方程简化为 pi = 2*n/h。现在我做了两个代码。代码 1:
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
谁能告诉我为什么??