Lecture 16:计数
1. 规则回顾
- 乘法法则:
,用于"且"关系。 - 双射法则: 若
是双射,则 。 - 加法法则: 若
两两不相交,则 ,用于"或"关系。 - 广义乘法法则: 每步选择数量固定(不依赖之前选择的具体内容)时,总数为各步选择数之积。
广义乘法法则反例: 求三位递增序列的数量时,第二位的选择数依赖第一位,因此不能直接用。
排列: 集合
2. 除法法则(Division Rule)
定义: 若
例(圆桌骑士):
3. 组合数
问题: 从
推导:
- 先选有序序列:
种。 - 每个大小为
的子集对应 个有序序列(所有排列)。 - 由除法法则,子集数为
。
例:
- 从 350 人中选 4 名志愿者:
种。 - 从 15 种配料中选 3 种披萨配料:
种。 - 抛 100 枚硬币,恰好 50 正 50 反的序列数:
(约占全部 种结果的 8%)。
回到递增序列问题: 从
4. 用序列/方案构造计数
方法论: 将目标对象的构造过程分解为一系列选择步骤,用广义乘法法则计数。
必须验证:
- 每组选择都产生集合中的一个对象。
- 集合中的每个对象恰好对应一种选择序列(是双射)。
若不是双射而是
4.1 扑克手牌计数基础
标准牌组:13 个点数(A, 2, ..., 10, J, Q, K)× 4 种花色 = 52 张牌。
一手牌 = 5 张牌的子集。总手牌数:
4.2 四条(4 of a Kind)
构造方案: 序列
验证双射:
- 每个
都产生一手四条牌?✓ - 每手四条牌恰好对应一个
?✓
由广义乘法法则:
4.3 四种花色齐全
错误方案: 依次选四种花色各自的点数再选一张多余牌,共
正确方案(避免歧义):
- 选有两张牌的花色
(另三种花色按字母序排为 ):4 种选法。 - 选
对应的两个点数 : 种。 - 为
各选一个点数: 种。
每手牌恰好对应一种构造,是双射,无需再除。
4.4 至少一对(At Least One Pair)
直接构造的困难:
方案"选对子点数 + 选两张花色 + 选其余 3 张"并非双射——多对牌的手牌可以由多种不同顺序构造,且对应的重复次数还不固定(普通对子 2 次、三条 3 次、两对 4 次……),无法用简单的除法法则修正。
正确做法:补集计数。
先计算没有对子的手牌数:
- 选 5 个不同点数的集合
: 种。 - 为每个点数独立选一种花色:
种。
无对子手牌数
至少有一对的手牌数