|
发表于 2021-12-14 00:08:19
|
显示全部楼层
- import random
- counts = int(input("请输入抛硬币的次数:"))
- #利用 ignes 来判断是否打印每次的结果
- if counts > 100:
- ignes = True
- else:
- ignes = False
- last = 0 #记录上一次,正反面的状态
- hands = 0 #记录正面次数
- tails = 0 #记录反面次数
- c_hands = 0 #记录连续正面次数
- c_tails = 0 #记录连续反面次数
- max_hands = 0 #记录连续正面最多的次数
- max_tails = 0 #记录连续反面最多的次数
- i = 0
- print("开始抛币实验.....")
- while i < counts:
- num = random.randint(1,10)
- if num % 2:
- hands += 1
- c_hands += 1
- if not ignes: # 如果为 True 就打印内容,则不打印
- print("正面",end = " ")
- if last == 2: #如果上一次的状态为 反面 ,就将连续正面状态设置为 1
- c_hands = 1
- if c_hands > max_hands: #判断连续正面 ,是否大于 max_hands 最大连续状态,是取而代之
- max_hands = c_hands
- #将上一次的状态设置为正面
- last = 1
- else:
- tails += 1
- c_tails += 1
- if not ignes:
- print("反面",end = " ")
- if last == 1: #如果上一次的状态为 正面,就将连续反面状态设置为 1
- c_tails = 2
- if c_tails > max_tails: #判断连续反面状态,是否大于 max_tails 最大连续状态,是取而代之
- max_tails = c_tails
- #将上一次的状态设置为反面
- last == 2
- i = i + 1
- print("")
- print("一共模拟了", counts ,"次抛硬币,结果如下:")
- print("正面:",hands,"次",sep="")
- print("反面:",tails,"次",sep="")
- print("最多连续正面:",max_hands,"次",sep="")
- print("最多连续反面:",max_tails,"次",sep="")
-
复制代码 |
|