学Python编程的时候碰到了编程模拟随机事件的情况。
问题叙述如下:
1.硬币总投掷次数为100W次。
2.求出现连续10次正面的次数均值。
首先想到的是1/2的10次方,1/1024的概率,那么模拟出来的次数大概稳定在1000次左右。
然而这里混淆了一个概念,连续出现10次正面为一次事件那么,事件总数不是100W,而是10W.所以应该是100次左右。
不过程序模拟出来的最终结果是500次左右。因为连续100W次,并不是10W次 独立的事件。
比如:
XXXOO XXXXX XXXXX OXOOOO 是连续20次投掷结果。
按照10次分组,第一组和第二组都没有10次连续正面。但是由于事件不独立,从第5次到15次出现连续10次正面事件。
那么它的概率要怎么计算呢。
**********1 ***** ***** 2***** *****3
以中间的第二组为观察对象
连续10次正面几率 1/1024
连续9次正面,且与头尾相连 21/1024*1/2 (2既可以连头,也可以连尾, 要保证是9次 . 而不是10次则有一次必需反面,概率也是1/1024 . . 1/2是因为与其搭配的那一位必需是正)
连续8次正面,且与头尾相连 2*1/512 *1/4
连续7次正面,且与头尾相连 2*1/256 *1/8
连续6次正面,且与头尾相连 2*1/128 *1/16
连续5次正面,且与头尾相连 2*1/64 *1/32
连续4次正面,且与头尾相连 2*1/32 *1/64
连续3次正面ÿ