在日常生活中,我们经常会遇到"在多次尝试中成功多少次"的问题:抛硬币、检验产品合格率、评估考试通过人数......二项分布正是用来回答这类问题的有力工具。本文将从零开始,通俗地理解二项分布的原理与公式,配合丰富的真实案例,并通过 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. 现实生活中的应用
-
抛硬币 :抛n次公正硬币,正面朝上的次数服从 <math xmlns="http://www.w3.org/1998/Math/MathML"> B ( n , 0.5 ) B(n,0.5) </math>B(n,0.5)。
-
质量检验 :工厂随机抽取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 分布时对应的推广模型。