用python完成硬币仿真实验
问题重述
现有一枚硬币,抛100次,问连续出现10次正面朝上的概率!
问题分析
抛硬币是一个随机事件。在随机事件的大量重复出现中,往往呈现几乎必然的规律,即大数定律。利用这个性质。本文以仿真一百万次为例
将抛硬币的出现的正面记为0,反面记为1。抛100次硬币可以用随机出现的0和1装进一个列表里面模拟。而10次连续正面可以用十个0相加等于零作为条件。
代码如下
import random as rd
x = 0
list_happen = []
while x < 1000000:
n = -1
x = x+1
a = [rd.randint(0,1)for x in range(100)] #抛100次硬币装进空列表a里
y = True
while y:
n = n+1
try:
if a[n]+a[n+1]+a[n+2]+a[n+3]+a[n+4]+a[n+5]+a[n+6]+a[n+7]+a[n+8]+a[n+9]==0:
happen = 1
list_happen.append(happen)
y = False
except:
y = False
print(len(list_happen)/1000000)