|
- '''
- 楼主写的应该是没问题的,但是感觉比较乱
- 我自己刚刚敲了一个
- 楼主可以看看是不是有帮助
- 给楼主个建议
- 还是少用abcd这种变量
- 记不住谁是谁
- '''
- import random
- num = int(input('请输入抛硬币的次数:'))
- print('开始抛硬币实验')
- #将数据用列表存储
- # up 和 1 表示正面
- # down 和 2 表示反面
- # [1,0,0]分别表示[正面,正面次数,正面最大连续次数]
- list_up = [1,0,0]
- list_down = [2,0,0]
- #循环内临时变量,用于判断
- max_up = max_down = 0
- for i in range(num):
- random_num = random.randint(1,2)
-
- if random_num == list_up[0]:
- list_up[1] += 1
- max_up += 1
- max_down = 0
- #如果随机数为1则正面次数加一
- #正面连续次数加一
- #反面连续次数清零
- if max_up >=list_up[2]:
- list_up[2] = max_up
- #如果正面连续次数大于等于已记录列表内最大连续次数
- #则更正列表内最大连续次数
- #以下相同
- elif random_num == list_down[0]:
- list_down[1] += 1
- max_down += 1
- max_up = 0
- if max_down >=list_down[2]:
- list_down[2] = max_down
-
- print('一共模拟了',num,'次抛硬币,结果如下:')
- print('正面:',list_up[1],'次')
- print('反面:',list_down[1],'次')
- print('最多连续正面:',list_up[2],'次')
- print('最多连续反面:',list_down[2],'次')
复制代码 |
|