Python 掷硬币的连胜(抛硬币概率)

模拟掷硬币100次,并在每次正面朝上的时候写下‘1’ ,背面朝上时写下‘0’, 并统计连续出现6次正面和6次背面的次数。

模拟1000回投掷100次中出现连续出现6次正面或背面的次数

分析:

1,每次投掷的结果只有两种:0(背面)和1(正面)

2,将投掷100次的结果存到列表中

3,对100次的结果进行分析

4,相同步骤重复1000回

import random


# 生成一个100次掷硬币结果的列表
def coin():
    coin_c = [0, 1]  # 硬币的正面和反面
    coin_list = []  # 结果列表
    for value in range(100):
        coin_list.append(random.choice(coin_c))  # 将结果存入列表
    return coin_list  # 返回结果列表


con_6 = 0  # 统计连续6次正面或背面的次数
con_0 = 0  # 统计出现硬币背面的次数
con_1 = 0  # 统计出现硬币背面的次数
coin_list_100 = []  # 100次投掷硬币的结果列表
for v in range(1000):  # 重复1000回
    coin_list_100 = coin()  # 调用函数,生成100次投掷硬币结果
    for n in coin_list_100:  # 遍历结果列表
        if n == 1:  # 硬币正面朝上
            if con_0 == 6 and con_1 == 0:  # 连续出现6次硬币背面朝上
                con_6 += 1  # 计数+1
            con_1 += 0
            con_0 = 0
        else:
            if con_1 == 6 and con_0 == 0:  # 连续出现6次硬币正面朝上
                con_6 += 1  # 计数+1
            con_0 += 1
            con_1 = 0
    coin_list_100.clear()  # 清空列表
print("1000回掷100次硬币出现6次连续相同面的频率是:", con_6)

你可能感兴趣的:(python,开发语言)