抛硬币背后的秘密-通俗玩转二项分布

在日常生活中,我们经常会遇到"在多次尝试中成功多少次"的问题:抛硬币、检验产品合格率、评估考试通过人数......二项分布正是用来回答这类问题的有力工具。本文将从零开始,通俗地理解二项分布的原理与公式,配合丰富的真实案例,并通过 Python 演示模拟与计算,介绍这一经典分布。

1. 简介

二项分布(Binomial Distribution)是一种离散型概率分布,用于描述在固定次数的独立重复试验中,某事件出现"成功"次数的概率规律。 每次试验只有两种可能结果:成功(success)或失败(failure),因此也称为伯努利试验的多次重复。

2. 基本概念

  • 伯努利试验(Bernoulli Trial) :单次试验只有"成功/失败"两种结果,其成功概率为 <math xmlns="http://www.w3.org/1998/Math/MathML"> p p </math>p,失败概率为 <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 − p 1-p </math>1−p。

  • 独立重复:多次试验互不影响,每次成功概率保持不变。

  • 随机变量定义 :令第 <math xmlns="http://www.w3.org/1998/Math/MathML"> i i </math>i 次试验的结果记为 <math xmlns="http://www.w3.org/1998/Math/MathML"> X i X_i </math>Xi:

    <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> X i = { 1 , 成功 , 0 , 失败 . X_i = \begin{cases} 1, & \text{成功},\\ 0, & \text{失败}. \end{cases} </math>Xi={1,0,成功,失败.

    则总成功次数为 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y = ∑ i = 1 n X i Y= \sum_{i=1}^{n} X_i </math>Y=∑i=1nXi, <math xmlns="http://www.w3.org/1998/Math/MathML"> Y Y </math>Y 服从二项分布, 记为: <math xmlns="http://www.w3.org/1998/Math/MathML"> Y ∼ B ( n , p ) Y∼B(n,p) </math>Y∼B(n,p)。

3. 重要数学公式

若 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y ∼ B ( n , p ) Y∼B(n,p) </math>Y∼B(n,p) ,则其概率质量函数(PMF)为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> P ( Y = k ) = C n k p k ( 1 − p ) n − k , k = 0 , 1 , ... , n P(Y=k)= C_n^k p^k (1-p)^{n-k},\quad k=0,1,\dots,n </math>P(Y=k)=Cnkpk(1−p)n−k,k=0,1,...,n

  • 期望 : <math xmlns="http://www.w3.org/1998/Math/MathML"> E [ Y ] = n p E[Y]=np </math>E[Y]=np
  • 方差 : <math xmlns="http://www.w3.org/1998/Math/MathML"> V a r ( Y ) = n p ( 1 − p ) Var(Y)=np(1−p) </math>Var(Y)=np(1−p)

4. 现实生活中的应用

  1. 抛硬币 :抛n次公正硬币,正面朝上的次数服从 <math xmlns="http://www.w3.org/1998/Math/MathML"> B ( n , 0.5 ) B(n,0.5) </math>B(n,0.5)。

  2. 质量检验 :工厂随机抽取n件产品检测,合格品数量服从 <math xmlns="http://www.w3.org/1998/Math/MathML"> B ( n , p ) B(n,p) </math>B(n,p),其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> p p </math>p 是总体合格率。

5. Python 绘制概率密度函数

<math xmlns="http://www.w3.org/1998/Math/MathML"> Y ∼ B ( 20 , 0.5 ) Y∼B(20,0.5) </math>Y∼B(20,0.5), 表示投掷N=20次硬币,每次投掷成功(正面)的概率p=0.5,绘制其概率密度函数图像进一步说明:

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom
import warnings
warnings.filterwarnings("ignore")
# 忽略警告输出
plt.rcParams["font.family"] = 'Arial Unicode MS'
#⽤来正常显示中⽂标签
plt.rcParams['axes.unicode_minus'] = False

n = 20   # 共实验20次
p = 0.5	 # 单次实验成功的概率
k = np.arange(n + 1)

# 计算 PMF
pmf = binom.pmf(k, n, p)

# 绘图
plt.figure()
plt.plot(k, pmf, marker='o')
plt.xlabel('成功次数 $k$')
plt.ylabel('概率 $P(Y=k)$')
plt.title('二项分布 $B(n=20, p=0.5)$ 的概率质量函数 (PMF)')
plt.grid(True)
plt.show()

绘制图像如下:

函数图像解释:

  • 横坐标(X 轴)

    表示随机变量 X 的取值,也就是在N(这里的N=20)次独立伯努利试验中"成功"的次数 k, 这里k取值从 0 到 20,对应所有可能出现的成功次数​。

  • 纵坐标(Y 轴)

    表示投掷20次硬币,恰好出现 k次成功的概率值,即概率质量函数(PMF)的取值,数值域为 [0,1]。

  • 离散概率分布 二项分布是离散分布,只有在整数点 k=0,1,...,n上有意义,图中各点的高度即对应该取值发生的概率。所有高度之和为 1,反映所有可能结果的概率总和。

  • 直观比较

    通过观察不同 k值处的高度,可以迅速看出"最可能"出现多少次成功(即峰值位置),以及极端情况(如全部成功或全部失败)的罕见程度。

  • 参数影响

    • 增大 N 会使横轴范围变宽,分布更平缓;

    • 改变成功概率 p 会使峰值向左(p<0.5)或向右(p>0.5)偏移,体现偏态分布特征。

6. 拓展

  • 泊松近似(Poisson Approximation):当 n 很大且 p 很小时,二项分布可近似为泊松分布。
  • 正态近似(Normal Approximation):若 np和 n(1−p) 都较大,可用正态分布近似二项分布。
  • Beta-二项分布(Beta-Binomial):当成功概率 p不固定,而服从 Beta 分布时对应的推广模型。
相关推荐
Demons_kirit3 分钟前
Leetcode 2845 题解
算法·leetcode·职场和发展
adam_life33 分钟前
http://noi.openjudge.cn/——2.5基本算法之搜索——200:Solitaire
算法·宽搜·布局唯一码
我想进大厂1 小时前
图论---朴素Prim(稠密图)
数据结构·c++·算法·图论
我想进大厂1 小时前
图论---Bellman-Ford算法
数据结构·c++·算法·图论
AIGC大时代1 小时前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
CODE_RabbitV2 小时前
【深度强化学习 DRL 快速实践】近端策略优化 (PPO)
算法
Wendy_robot3 小时前
【滑动窗口+哈希表/数组记录】Leetcode 438. 找到字符串中所有字母异位词
c++·算法·leetcode
程序员-King.3 小时前
day49—双指针+贪心—验证回文串(LeetCode-680)
算法·leetcode·贪心算法·双指针
转基因3 小时前
Codeforces Round 1020 (Div. 3)(题解ABCDEF)
数据结构·c++·算法
我想进大厂4 小时前
图论---Kruskal(稀疏图)
数据结构·c++·算法·图论