鱼C论坛

 找回密码
 立即注册
查看: 2089|回复: 0

[学习笔记] 速查Python课后第016讲:如何统计硬币连续正反面最多次数

[复制链接]
发表于 2021-10-28 20:52:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小蜂队 于 2021-11-24 17:35 编辑

0.抛硬币并统计正反面次数最多
  1. import random

  2. counts = int(input("请输入抛硬币的次数:"))

  3. # 利用 ignore 变量来判断是否打印每次的结果
  4. if counts > 100:
  5.     ignore = True
  6. else:
  7.     ignore = False

  8. heads = 0 # 统计正面的次数
  9. tails = 0 # 统计反面的次数

  10. last = 0 # 记录上一次的状态,如果是正面设置为1, 反面则设置为2
  11. c_heads = 0 # 统计连续正面的次数
  12. c_tails = 0 # 统计连续反面的次数
  13. max_heads = 0 # 统计连续正面的最多次数
  14. max_tails = 0 # 统计连续反面的最多次数

  15. i = 0
  16. print("开始抛硬币实验……")
  17. while i < counts:
  18.     num = random.randint(1, 10)

  19.     if num % 2:
  20.         heads += 1
  21.         c_heads += 1

  22.         if not ignore:      
  23.             print("正面", end=" ")

  24.         # 如果上一次是反面:将连续正面的次数设置为1
  25.         if last == 2:
  26.             c_heads = 1

  27.         # 判断连续正面的次数是否比max_heads大,如果是,取而代之
  28.         if c_heads > max_heads:
  29.             max_heads = c_heads

  30.         # 将上一次的状态设置为正面
  31.         last = 1
  32.     else:
  33.         tails += 1
  34.         c_tails += 1
  35.         
  36.         if not ignore:
  37.             print("反面", end=" ")

  38.         # 如果上一次是正面:连续反面的次数设置为1
  39.         if last == 1:
  40.             c_tails = 1

  41.         # 判断连续反面的次数是否比max_tails大,如果是,取而代之
  42.         if c_tails > max_tails:
  43.             max_tails = c_tails

  44.         # 将上一次的状态设置为反面
  45.         last = 2
  46.         
  47.     i += 1

  48. print("")
  49. print("一共模拟了", counts, "次抛硬币,结果如下:")
  50. print("正面:", heads, "次", sep="")
  51. print("反面:", tails, "次", sep="")
  52. print("最多连续正面:", max_heads, "次", sep="")
  53. print("最多连续反面:", max_tails, "次", sep="")
复制代码


代码执行结果如下:
  1. 请输入抛硬币的次数:100000000
  2. 开始抛硬币实验……

  3. 一共模拟了 100000000 次抛硬币,结果如下:
  4. 正面:49994916次
  5. 反面:50005084次
  6. 最多连续正面:29次
  7. 最多连续反面:27次
  8. >>>
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 21:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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