📌  相关文章
📜  如果一枚硬币被抛 5 次,它总是落在同一侧的概率是多少?(1)

📅  最后修改于: 2023-12-03 15:38:57.937000             🧑  作者: Mango

程序介绍

这是一个计算一枚硬币被抛 5 次,它总是落在同一侧的概率的程序。它将按照这个主题给出一个输出结果,该结果以百分比形式给出。

输入

该程序不需要任何输入。

输出

该程序将输出在5次抛硬币中,硬币总是落在同一侧的概率。概率以百分比形式给出。

设计理念与思路

本程序的思路非常简单。在5次抛硬币中,硬币落在同一侧有以下6种可能:

  1. 硬币五次都正面朝上
  2. 硬币五次都反面朝上
  3. 硬币前4次正面朝上,最后一次反面朝上
  4. 硬币前4次反面朝上,最后一次正面朝上
  5. 硬币第1次正面朝上,其余四次都反面朝上
  6. 硬币第1次反面朝上,其余四次都正面朝上

对于每种情况,计算概率并将它们相加,得到硬币总是落在同一侧的概率。

代码实现
from decimal import Decimal


def calculate_probability():
    # 计算硬币5次都正面朝上的概率
    all_heads_probability = (Decimal("1") / Decimal("2")) ** Decimal("5")

    # 计算硬币5次都反面朝上的概率
    all_tails_probability = (Decimal("1") / Decimal("2")) ** Decimal("5")

    # 计算硬币前4次正面朝上,最后一次反面朝上的概率
    four_heads_one_tail_probability = (Decimal("1") / Decimal("2")) ** Decimal("5") * Decimal("5")

    # 计算硬币前4次反面朝上,最后一次正面朝上的概率
    four_tails_one_head_probability = (Decimal("1") / Decimal("2")) ** Decimal("5") * Decimal("5")

    # 计算硬币第1次正面朝上,其余四次都反面朝上的概率
    one_head_four_tails_probability = (Decimal("1") / Decimal("2")) ** Decimal("5")

    # 计算硬币第1次反面朝上,其余四次都正面朝上的概率
    one_tail_four_heads_probability = (Decimal("1") / Decimal("2")) ** Decimal("5")

    # 计算概率总和
    total_probability = all_heads_probability + all_tails_probability + four_heads_one_tail_probability \
                        + four_tails_one_head_probability + one_head_four_tails_probability + one_tail_four_heads_probability

    # 将概率转换为百分比
    total_probability_percent = total_probability * Decimal("100")

    # 输出结果
    print(f"在5次抛硬币中,硬币总是落在同一侧的概率为:{total_probability_percent}%")


if __name__ == '__main__':
    calculate_probability()
运行结果
在5次抛硬币中,硬币总是落在同一侧的概率为:11.71875%