请输入抛硬币的次数:99
开始抛硬币实验:
反面 正面 正面 正面 正面 反面 反面 反面 正面 反面 反面 正面 正面 正面 正面 正面 正面 反面 正面 正面 正面 正面 反面 反面 反面 反面 反面 正面 正面 正面 正面 反面 反面 正面 反面 正面 正面 正面 正面 反面 反面 正面 正面 正面 反面 反面 反面 正面 反面 正面 反面 反面 反面 正面 正面 正面 正面 反面 正面 反面 正面 反面 反面 反面 反面 正面 反面 正面 正面 反面 正面 正面 反面 正面 反面 反面 反面 正面 正面 正面 反面 正面 正面 正面 正面 正面 正面 反面 反面 正面 正面 正面 正面 反面 正面 反面 正面 正面 正面 一共模拟了 99 次抛硬币,结果如下:
正面: 58
反面: 41
最多连续正面: 6
最多连续反面: 41
有明显的bug
在else中应该赋值给fm1而非fm2
另外相同的代码写两遍很繁琐,可以合并成一个语句
修改后代码
import random
counts = int(input("请输入抛硬币的次数:"))
i = 0
z = 0
f = 0
fm1 = 0
fm2 = 0
zm1 = 0
zm2 = 0
print("开始抛硬币实验:")
while i < counts:
num = random.randint(1, 10)
if num % 2:
fm1 = 0
zm1 += 1
if counts < 100:
print("正面", end=" ")
z += 1
else:
zm1 = 0
fm1 += 1
if counts < 100:
print("反面", end=" ")
f += 1
i += 1
if zm1 > zm2:
zm2 = zm1
if fm1 > fm2:
fm2 = fm1
print("一共模拟了",counts,"次抛硬币,结果如下:")
print("正面:",z)
print("反面:",f)
print("最多连续正面:",zm2)
print("最多连续反面:",fm2)
其实买个至尊vip会员支持一下小甲鱼也不错的 |