为什么“最多连续次数”和正面总次数一样,而反面是正确的?
本帖最后由 星何旅人_C 于 2023-2-12 01:05 编辑求助!!谢谢!! import random
heads , tails , theads , ttails , continues_z , continues_f , last = 0 , 0 , 0 , 0 , 0 , 0 , 0
k = int(input('请输入抛币的次数:'))
print('开始抛币实验......')
for _ in range(k):
x = random . randint(1 , 2)
if x == 1:
if x != last:
if tails > continues_f : continues_f = tails
tails = 0
theads , heads = theads + 1 , heads + 1
if k <= 100 : print('正面' , end = ' ')
else:
if x != last:
if heads > continues_z : continues_z = heads
heads = 0
ttails , tails = ttails + 1 , tails + 1
if k <= 100 : print('反面' , end = ' ')
last = x
print()
print('一共模拟了%d次抛币,结果如下:' % k)
print('正面:%d次' % theads)
print('反面:%d次' % ttails)
print('最多连续正面:%d次' % continues_z)
print('最多连续反面:%d次' % continues_f) jackz007 发表于 2023-2-12 01:05
大佬能看看我错哪里了吗?谢谢!{:5_110:} 星何旅人_C 发表于 2023-2-12 01:12
大佬能看看我错哪里了吗?谢谢!
你提问的时候最好把你的代码贴上来,不然别人回答你的问题还要手敲就很烦
这个我照着你的截图手敲一遍没有问题,如果你的代码执行结果还是不对的话就把代码贴上来
#coding=gbk
import random
counts = int(input("请输入一个正整数:"))
#利用ignore判断是否打印
if counts > 100:
ignore = True
else:
ignore = False
heads = 0#正面计数
tails = 0#反面计数
#last = 0#记录上次状态,硬币换面时可以用清0方法更简洁
c_heads = 0#连续正面次数
max_heads= 0#正面最大值
c_tails = 0#连续反面次数
max_tails = 0#反面最大值
i = 0#用于while函数计数器
print("开始抛硬币实验...")
while i < counts:
num = int(random.randint(1,2)) #1正面,2反面
if num == 1:#等价于num % 2
heads += 1#正面计数
c_heads += 1#正面连续次数
if not ignore:
print("正面",end = "-")
print(c_heads,end = " | ")#连续计数值,省得去数了
c_tails = 0#反面连续次数清零
else:
tails += 1#反面计数
c_tails += 1#反面连续次数
if not ignore:
print("反面",end = "-")
print(c_tails,end = " | ")#连续计数值,省得去数了
c_heads =0 #正面连续次数清零
if c_heads != 0:#连续正面取最大值
if c_heads >= max_heads :
max_heads = c_heads
if c_tails != 0:#连续反面取最大值
if c_tails >= max_tails:
max_tails = c_tails
i += 1#用于while函数计数器
print()#增加一个换行
print("正面的个数:",heads)
print("反面的个数:",tails)
print("正面最多次数:",max_heads )
print("反面最多次数:",max_tails)
运行结果:
请输入一个正整数:30
开始抛硬币实验...
正面-1 | 反面-1 | 正面-1 | 正面-2 | 正面-3 | 正面-4 | 正面-5 | 反面-1 | 反面-2 | 反面-3 | 反面-4 | 反面-5 | 反面-6 | 反面-7 | 正面-1 | 正面-2 | 正面-3 | 正面-4 | 反面-1 | 正面-1 | 正面-2 | 正面-3 | 正面-4 |
反面-1 | 正面-1 | 反面-1 | 反面-2 | 反面-3 | 正面-1 | 反面-1 |
正面的个数: 16
反面的个数: 14
正面最多次数: 5
反面最多次数: 7 isdkz 发表于 2023-2-12 07:45
你提问的时候最好把你的代码贴上来,不然别人回答你的问题还要手敲就很烦
这个我照着你的截图手敲一遍 ...
好的,记住了下次问问题贴代码,我已经知道我哪里出错了,是我有一个单词漏字母了。谢谢你!!
页:
[1]