|
发表于 2023-12-26 23:59:40
|
显示全部楼层
本帖最后由 jackz007 于 2023-12-27 09:21 编辑
- import random
- i = 0 # 循环变量
- x = 0 # 正面
- y = 0 # 反面
- j = 0 # 连续正面计数
- g = 0 # 最大连续反面
- c = 0 # 上一次抛币的结果,奇数=正面,偶数=反面
- z = 0 # 最大连续正面
- h = 0 # 连续反面计数
- counts = int(input("请输入抛硬币的次数:"))
- # 先处理首次抛币
- num = random . randint(1 , 2)
- if num % 2 : j , x = 1 , 1
- else : h , y = 1 , 1
- i , c = 1 , num
- #再处理后续抛币
- while i < counts :
- num = random . randint(1 , 2)
- if num % 2 : # 如果本次是正面
- if c % 2 : # 如果上一次也是正面
- j += 1 # 连续正面计数值增加
- else : # 否则,如果上一次是反面
- if h > g : # 【注意这里】:条件更新最大反面计数记录值。
- g = h
- j = 1 # 初始化连续正面计数值为 1
- x += 1
- else : # 否则,如果本次是反面
- if not (c % 2) : # 如果上一次也是反面
- h += 1 # 连续反面计数值增加
- else : # 否则,如果上一次是正面
- if j > z : # 【注意这里】:条件更新最大正面计数记录值
- z = j
- h = 1 # 初始化连续反面计数值为 1
- y += 1
- c = num
- i += 1
- if counts <= 100 :
- print('正面') if num % 2 else print('反面')
- print()
- print("一共", x + y,"次硬币,结果如下")
- print("正面:", x, "次")
- print("反面:", y, "次")
- print("连续正面:", z, "次")
- print("连续反面:", g, "次")
复制代码 |
|