鱼C论坛

 找回密码
 立即注册
查看: 3683|回复: 1

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

[复制链接]
发表于 2023-1-16 23:30:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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, "次")
最佳答案
2023-1-17 10:57:31
本帖最后由 jackz007 于 2023-1-17 11:01 编辑
  1. import random

  2. heads , tails , con_heads , con_tails , max_heads , max_tails , last = 0 , 0 , 0 , 0 , 0 , 0 , 0

  3. answer = int(input("请输入数字:"))
  4. k = 1 if answer <= 100 else 0
  5. x = answer
  6. while x > 0:
  7.     face = random . randint(1 , 2)
  8.     if k:
  9.         print("正") if face == 1 else print("反")
  10.     if face == 1:
  11.         if face != last:
  12.             if con_tails > max_tails : max_tails = con_tails
  13.             con_tails = 0
  14.         heads , con_heads = heads + 1 , con_heads + 1
  15.     else:
  16.         if face != last :
  17.             if con_heads > max_heads : max_heads = con_heads
  18.             con_heads = 0
  19.         tails , con_tails = tails + 1 , con_tails + 1
  20.     last = face
  21.     x -= 1
  22. print("一共抛币", answer , "次")
  23. print("其中", heads, "次正面",tails, "次反面")
  24. print("连续最多次正面为", max_heads, "次")
  25. print("连续最多次反面为", max_tails, "次")
复制代码

        运行实况:
  1. D:\[00.Exercise]\[Python]>python x.py
  2. 请输入数字:50


















































  3. 一共抛币 50 次
  4. 其中 23 次正面 27 次反面
  5. 连续最多次正面为 4 次
  6. 连续最多次反面为 8 次

  7. D:\[00.Exercise]\[Python]>python x.py
  8. 请输入数字:5000
  9. 一共抛币 5000 次
  10. 其中 2474 次正面 2526 次反面
  11. 连续最多次正面为 11 次
  12. 连续最多次反面为 11 次

  13. D:\[00.Exercise]\[Python]>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-17 10:57:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2023-1-17 11:01 编辑
  1. import random

  2. heads , tails , con_heads , con_tails , max_heads , max_tails , last = 0 , 0 , 0 , 0 , 0 , 0 , 0

  3. answer = int(input("请输入数字:"))
  4. k = 1 if answer <= 100 else 0
  5. x = answer
  6. while x > 0:
  7.     face = random . randint(1 , 2)
  8.     if k:
  9.         print("正") if face == 1 else print("反")
  10.     if face == 1:
  11.         if face != last:
  12.             if con_tails > max_tails : max_tails = con_tails
  13.             con_tails = 0
  14.         heads , con_heads = heads + 1 , con_heads + 1
  15.     else:
  16.         if face != last :
  17.             if con_heads > max_heads : max_heads = con_heads
  18.             con_heads = 0
  19.         tails , con_tails = tails + 1 , con_tails + 1
  20.     last = face
  21.     x -= 1
  22. print("一共抛币", answer , "次")
  23. print("其中", heads, "次正面",tails, "次反面")
  24. print("连续最多次正面为", max_heads, "次")
  25. print("连续最多次反面为", max_tails, "次")
复制代码

        运行实况:
  1. D:\[00.Exercise]\[Python]>python x.py
  2. 请输入数字:50


















































  3. 一共抛币 50 次
  4. 其中 23 次正面 27 次反面
  5. 连续最多次正面为 4 次
  6. 连续最多次反面为 8 次

  7. D:\[00.Exercise]\[Python]>python x.py
  8. 请输入数字:5000
  9. 一共抛币 5000 次
  10. 其中 2474 次正面 2526 次反面
  11. 连续最多次正面为 11 次
  12. 连续最多次反面为 11 次

  13. D:\[00.Exercise]\[Python]>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 04:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表