连续最多次正面 和 连续最多次反面总是不对,求大神解答
本帖最后由 dukai 于 2023-1-17 10:35 编辑import random
answer = input("请输入数字")
answer = int(answer)
heads = 0
tails = 0
con_heads = 0
con_tails = 0
max_heads = 0
max_tails = 0
last = 0
if answer <= 100:
while answer > 0:
face = random.randint(1,2)
if face == 1:
print("正")
heads = heads + 1
if last == 1:
con_heads = con_heads + 1
max_heads = max_heads + 1
if con_heads > max_heads:
max_heads = con_heads
else:
con_heads = 1
last =1
else:
print("反")
tails = tails + 1
if last == 2:
con_tails = con_tails + 1
max_tails = max_tails + 1
if con_tails > max_tails:
max_tails = con_tails
else:
con_tails = 1
last = 2
answer = answer - 1
#请忽略下面一段,还没来得及写
else:
while answer > 0:
face = random.randint(1,2)
if face == 1:
heads = heads + 1
else:
tails = tails + 1
answer = answer - 1
print("一共", heads, "次正面",tails, "次反面")
print("连续最多次正面为", max_heads, "次")
print("连续最多次反面为", max_tails, "次") 本帖最后由 jackz007 于 2023-1-17 11:01 编辑
import random
heads , tails , con_heads , con_tails , max_heads , max_tails , last = 0 , 0 , 0 , 0 , 0 , 0 , 0
answer = int(input("请输入数字:"))
k = 1 if answer <= 100 else 0
x = answer
while x > 0:
face = random . randint(1 , 2)
if k:
print("正") if face == 1 else print("反")
if face == 1:
if face != last:
if con_tails > max_tails : max_tails = con_tails
con_tails = 0
heads , con_heads = heads + 1 , con_heads + 1
else:
if face != last :
if con_heads > max_heads : max_heads = con_heads
con_heads = 0
tails , con_tails = tails + 1 , con_tails + 1
last = face
x -= 1
print("一共抛币", answer , "次")
print("其中", heads, "次正面",tails, "次反面")
print("连续最多次正面为", max_heads, "次")
print("连续最多次反面为", max_tails, "次")
运行实况:
D:\\>python x.py
请输入数字:50
正
反
正
正
反
正
正
反
正
反
正
反
反
正
反
反
正
正
反
反
正
正
反
正
反
正
反
反
正
反
正
反
正
正
正
正
反
反
正
反
反
反
反
反
反
反
反
正
反
正
一共抛币 50 次
其中 23 次正面 27 次反面
连续最多次正面为 4 次
连续最多次反面为 8 次
D:\\>python x.py
请输入数字:5000
一共抛币 5000 次
其中 2474 次正面 2526 次反面
连续最多次正面为 11 次
连续最多次反面为 11 次
D:\\>
页:
[1]