dukai 发表于 2023-1-16 23:30:47

连续最多次正面 和 连续最多次反面总是不对,求大神解答

本帖最后由 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 10:57:31

本帖最后由 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]
查看完整版本: 连续最多次正面 和 连续最多次反面总是不对,求大神解答