|
发表于 2022-8-31 16:26:08
|
显示全部楼层
本楼为最佳答案
本帖最后由 柿子饼同学 于 2022-8-31 16:33 编辑
先看代码, 不懂来问
- import random as r
- num = int(input("请输入抛硬币次数: "))
- pos = 0
- neg = 0 # pos 正, neg 反 , 记录局部连续值
- maxpos = 0
- maxneg = 0 # 记录最大连续值
- last = r.choice("PN") # 记录当前选择的上一个选择 , 先选一次
- if last == "P":
- pos += 1
- maxpos = 1
- else:
- neg += 1
- maxneg = 1
- print(last, end = " ")
- for i in range(1, num): # 选 num-1 次
- choice = r.choice("PN") # P正 N反
- if last == choice: # 如果跟上一轮一样, 就给局部连续次数加一
- if choice == "P":
- pos += 1
- else:
- neg += 1
- else: # 如果不一样, 更新答案. 清零继续算
- if choice == "P":
- maxneg = max(maxneg, neg)
- neg = 0
- pos += 1
- else:
- maxpos = max(maxpos, pos)
- pos = 0
- neg += 1
- last = choice # 更新 last
- print(last, end = " ")
-
- print("正面连续: ", maxpos, ", 反面连续: ", maxneg)
复制代码 |
|