python抛硬币正面向上概率_Python-计算抛硬币出现连续10次正面朝上的概率的仿真实验...

前言

本人是大一刚入学没多久的新生,第一次写博客可能某些方面不太好望大家多多谅解!您觉得写得不好的地方,欢迎加大力度开口喷/滑稽~

1.问题重述

抛硬币100次,问出现10次连续正面朝上的概率为多少?

2.问题分析

针对问题,在python上大致可以分为两种方法实现:

1)仿真实验

2)数学公式的递归计算

本文使用的是仿真实验计算,仿真实验的实验次数越多,计算得到的结果越精准。

3.问题的求解

首先,记硬币的正面为1,反面为0,在python里面引用random库的randint()函数生成只有一百万个0或1的列表,然后使用for循环遍历列表,统计0或1重复出现的次数并进行累加,在循环语句中添加条件只为正面,即列表的第i个元素是1且第i+1个元素也是1;在循环语句的最后再判断这个重复出现的次数是否等于10,如果等于10,就累加给另外一个变量,最终将这个变量除于10000就可以得到抛硬币100次,出现10次连续正面朝上的概率。

4.代码

import random as rd

row = [rd.randint(0,1) for i in range(1000000)]#紧凑格式的生成1000000个元素列表

a,sum1 = 1,0

for i in range(len(row)-1):

if row[i] == 1 and row[i] == row[i+1]:#判断第i个元素是否为1且第i个跟第i+1个元素是否相同

a += 1

else:

a = 1

if a == 10:

sum1 += 1

print(sum1/10000)1

2

3

4

5

6

7

8

9

10

11

5.关于抛硬币的一点注释

首先关于最终输出结果为什么要除于10000,我们仿真实验生成的是1000000个只有0或1的列表,而问题是求抛硬币100次出现10次正面连续朝上的概率,因此这里的1000000个元素的列表实际上10000次抛硬币100次的仿真结果。

最后的一些话

本人第一次写博客,某些地方不足请大家多多包涵,哪里不足请大力提出意见,就算是祖安文科状元也没事,别满腹金文憋在心中,这多委屈/滑稽,最后谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值