跳转至

3.2   样本空间与事件

雨还没下,小率和均哥先在咖啡桌上玩起桌游。规则很简单:同时掷两枚骰子,如果点数和大于 8,就前进两格;如果至少有一枚骰子是 6,就拿一张道具卡。

小率拿起笔就想算:“点数和大于 8 的概率是多少?”

均哥把骰子按在桌上:“概率题的第一步不是找公式,而是先把所有可能结果摆清楚。地图都没画,就急着找路线,很容易迷路。”

用骰子游戏理解样本空间和事件

这一节我们只盯住这个桌游骰子场景。两枚骰子、36 个格子、几个事件,就足够把样本空间、事件、并集、交集和补集讲清楚。


3.2.1   先把所有可能结果摆出来

同时掷两枚骰子时,第一枚可能是 1 到 6,第二枚也可能是 1 到 6。每个结果可以写成一个有序对:

\[ (1,1),(1,2),\dots,(6,6) \]

这里的“有序”很重要。\((2,5)\) 表示第一枚是 2、第二枚是 5;\((5,2)\) 表示第一枚是 5、第二枚是 2。它们点数和都等于 7,但在掷两枚骰子的过程中是两个不同结果。

所有可能结果放在一起,就叫 样本空间(Sample Space),常记作 \(\Omega\)

\[ \Omega=\{(i,j): i=1,\dots,6,\ j=1,\dots,6\} \]

两枚骰子一共有:

\[ 6\times 6=36 \]

个可能结果。

图 3.2.1 两枚骰子的样本空间与事件

样本空间像一张地图,地图上每个格子都是一个可能结果?
对。后面所有概率,都在问某块区域占整张地图多大。

3.2.2   事件就是地图上的一块区域

事件(Event) 是样本空间里的一个子集。桌游规则里自然出现了几个事件:

  • \(A\):点数和大于 8,可以前进两格。
  • \(B\):至少有一枚骰子是 6,可以拿道具卡。
  • \(C\):两枚骰子点数相同,也就是掷出对子。

如果每个格子等可能,那么事件概率就可以先用最朴素的方法算:

\[ P(A)=\frac{\text{事件 A 包含的结果数}}{\text{样本空间包含的结果数}} \]

点数和大于 8 的结果有:

点数和 结果
9 \((3,6),(4,5),(5,4),(6,3)\)
10 \((4,6),(5,5),(6,4)\)
11 \((5,6),(6,5)\)
12 \((6,6)\)

所以一共有 10 个结果:

\[ P(A)=\frac{10}{36}=\frac{5}{18}\approx0.278 \]
原来“点数和大于 8”不是一句话,而是 10 个格子。
是的。把话翻译成格子,概率就开始变清楚了。

你知道吗

样本空间不一定总能靠数格子。测量“明天最高气温”时,可能结果不是 1、2、3 这种离散格子,而是一段连续数值。后面学习随机变量和分布时,我们会把“数格子”升级成“看面积”。


3.2.3   “至少一个”通常比“恰好一个”更宽

桌游规则里的 \(B\) 是“至少有一枚骰子是 6”。这句话容易被读错。

“至少一枚是 6”包括三类情况:

  • 第一枚是 6,第二枚不是 6。
  • 第二枚是 6,第一枚不是 6。
  • 两枚都是 6。

把结果列出来:

\[ B=\{(6,1),(6,2),(6,3),(6,4),(6,5),(6,6),(1,6),(2,6),(3,6),(4,6),(5,6)\} \]

一共有 11 个结果,所以:

\[ P(B)=\frac{11}{36} \]

如果题目说“恰好一枚是 6”,那就要去掉 \((6,6)\),只剩 10 个结果。一个字的差别,事件就变了。

需要注意

“至少一个”“恰好一个”“两个都是”“一个都没有”是四个不同事件。概率题里最常见的错误之一,就是中文读得太快,事件写错了。


3.2.4   “或”“且”“不”其实是集合运算

现在看两个事件:

  • \(A\):点数和大于 8。
  • \(B\):至少有一枚骰子是 6。

日常语言里的“或”“且”“不”,在概率里要翻译成集合语言:

日常说法 数学写法 含义
A 或 B \(A\cup B\) 至少一个发生
A 且 B \(A\cap B\) 两个同时发生
不 A \(A^c\) A 没有发生

图 3.2.2 韦恩图理解并集、交集和补集

最常用的是容斥公式:

\[ P(A\cup B)=P(A)+P(B)-P(A\cap B) \]

它的意思很朴素:先把 A 和 B 都加起来,但重叠部分被数了两次,所以要减掉一次。

在桌游里,\(A\cap B\) 表示“点数和大于 8,而且至少有一枚 6”。这些结果是:

\[ (3,6),(4,6),(5,6),(6,3),(6,4),(6,5),(6,6) \]

共有 7 个。于是:

\[ P(A\cup B)=\frac{10}{36}+\frac{11}{36}-\frac{7}{36} =\frac{14}{36} =\frac{7}{18} \]

3.2.5   用 Python 把格子数一遍

outcomes = [(i, j) for i in range(1, 7) for j in range(1, 7)]

A = {o for o in outcomes if sum(o) > 8}
B = {o for o in outcomes if 6 in o}
C = {o for o in outcomes if o[0] == o[1]}

print(f"全部结果数:{len(outcomes)}")
print(f"点数和大于 8 的结果数:{len(A)}")
print(f"至少一枚是 6 的结果数:{len(B)}")
print(f"A 和 B 同时发生的结果数:{len(A & B)}")
print(f"A 或 B 发生的概率:{len(A | B) / len(outcomes):.3f}")
print(f"掷出对子的概率:{len(C) / len(outcomes):.3f}")

这段代码没有使用复杂技巧,只是在做一件事:把 36 个格子列出来,再按事件条件筛选。初学概率时,这种“先枚举,再筛选”的方式非常好用。

小率的笔记本

  • 样本空间 \(\Omega\) 是所有可能结果的集合。
  • 事件 \(A\) 是样本空间里的一块区域。
  • 等可能有限样本空间里,概率可以用“事件结果数 / 全部结果数”计算。
  • “至少一个”和“恰好一个”不是一回事。
  • 看到“或”,先问有没有重叠;有重叠就用容斥公式。