我一直在学习edX上的python编程,这是一门非常好的课程,到目前为止,我完全可以推荐。刚刚看了一个关于Statistics的TED演讲,我觉得很棒,这是一种简单的方法,可以练习我在真实世界场景中学到的python技能。这家伙举了一个例子,讲的是不断地抛硬币,寻找两个重复出现的序列,他解释说,你可能会认为发生的概率和他声称的事实上没有的概率相同。简单地说,他声称,正反面比正反面更有可能发生,因为在第一个序列的末尾,你已经有三分之一的时间再次重复这个序列,在第二个序列的末尾,你必须掷骰子再往前走一步,重新开始这个序列。这很有道理,所以我开始尝试用这里显示的小python程序来证明这一点。在import random
HTH = 0
HTT = 0
myList = []
i = 0
numberOfTosses = 1000000
while i < numberOfTosses:
myList.append(random.randint(0,1))
i += 1
for i in range (len(myList)):
if i+2 >= len(myList):
break
if myList[i] == 1 and myList[i+1] == 0 and myList[i+2] == 1:
HTH +=1
if myList[i] == 1 and myList[i+1] == 0 and myList[i+2] == 0:
HTT +=1
print 'HTT :' ,numberOfTosses, HTT, numberOfTosses/HTT
print 'HTH :' ,numberOfTosses, HTH, numberOfTosses/HTH
所以我已经运行了很多次程序,并且把最大迭代值改得越来越高,但似乎无法证明他的主张,平均每8次投掷HTH序列,每10次HTT序列都会发生,因为无论哪种方式,我都会得到平均平衡的结果。所以我的问题是,我在执行问题的过程中哪里出了问题?在