Appearance
组合计数是离散数学的计算核心。本笔记覆盖基本计数法则(加法/乘法)、排列与组合(含多重集)、二项式定理与组合恒等式、非降路径模型。
基本计数法则(考点)
加法法则与乘法法则
| 法则 | 内容 | 适用 |
|---|---|---|
| 加法法则 | 事件 A 有 m 种方式,B 有 n 种方式,A 与 B 不重叠,则"A 或 B"有 m+n 种 | 分类选取 |
| 乘法法则 | A 有 m 种,B 有 n 种且彼此独立,则"A 与 B"有 m×n 种 | 分步选取 |
- 分类处理:对方式集合划分后分别计数,用加法
- 分步处理:把一种方式分解为独立步骤,用乘法
- 分类与分步常结合使用(先分类每类内分步 / 先分步每步内分类)
典型应用
- 1400 = 2³·5²·7 的正因子个数 = (3+1)(2+1)(1+1) = 24
- 1000! 末尾 0 的个数 = min(因子 2 个数, 因子 5 个数) = 249
排列与组合(核心考点)
选取问题的四类模型
| 不重复 | 重复 | |
|---|---|---|
| 有序 | 集合的排列 P(n,r) | 多重集的排列 |
| 无序 | 集合的组合 C(n,r) | 多重集的组合 |
公式(必须背熟)
- 排列数:P(n,r) = n!/(n−r)!(从 n 元集有序不重复选 r 个)
- 组合数:C(n,r) = n!/(r!(n−r)!)(无序不重复选 r 个)
- 环排列数:P(n,r)/r
- 多重集全排列:n!/(n₁!n₂!…nₖ!),其中 n = n₁+…+nₖ
- 多重集组合(r ≤ nᵢ):C(k+r−1, r)(等价于 x₁+…+xₖ = r 非负整数解个数)
- 不相邻选取:从 {1,…,n} 选 k 个不相邻的数:C(n−k+1, k)
组合数性质
- C(n,r) = C(n, n−r)(对称性)
- Pascal 公式:C(n,r) = C(n−1,r−1) + C(n−1,r)(杨辉三角)
- C(n,0) + C(n,1) + … + C(n,n) = 2ⁿ(子集总数)
二项式定理与组合恒等式
二项式定理
(x+y)ⁿ = Σ C(n,i)·xⁱ·yⁿ⁻ⁱ,i 从 0 到 n。
- 应用:求展开式特定项的系数(如 (2x−3y)²⁵ 中 x¹²y¹³ 的系数 = C(25,13)·2¹²·(−3)¹³)
常用组合恒等式(考点)
| 恒等式 | 名称/用途 |
|---|---|
| Σ C(n,k) = 2ⁿ | 变下项求和(子集计数) |
| Σ k·C(n,k) = n·2ⁿ⁻¹ | 变系数求和(级数求导) |
| Σ C(k,r) = C(n+1,r+1) | 变上项求和(分类计数) |
| C(n,r)·C(r,k) = C(n,k)·C(n−k,r−k) | 乘积转换式 |
| Σ C(m,k)C(n,r−k) = C(m+n,r) | 积之和(Vandermonde) |
证明方法:公式代入、组合分析(数同一个东西两次)、二项式定理、幂级数求导/积分、归纳法。
非降路径模型(重点)
- (0,0) 到 (m,n) 的非降路径数 = C(m+n, m)
- (a,b) 到 (m,n) 的非降路径数 = C(m+n−a−b, m−a)
- (0,0) 到 (n,n) 不穿过对角线的非降路径数 = 2·C(2n−1,n) − …(Catalan 数相关,见递推章)
应用:证明恒等式、计数单调函数、栈的输出序列计数(进/出栈对应非降路径,输出数 = Catalan 数 Cₙ)。
多项式定理
(x₁+…+xₜ)ⁿ 的展开:Σ [n!/(n₁!…nₜ!)]·x₁ⁿ¹…xₜⁿᵗ,求和对所有 n₁+…+nₜ=n 的非负整数解。
- 多项式系数 n!/(n₁!…nₜ!) = 多重集全排列数 = 分球入盒方案数
一句话总结
计数四步走:先判断"有序/无序、重复/不重复"选对公式,再想加法还是乘法;非降路径是万能计数模型(栈输出、单调函数都归它);组合恒等式会证明会用。
相关概念
- 离散数学-容斥原理 — 处理"至少/至多"类计数
- 离散数学-函数 — 单射计数 = 排列数
- 离散数学-递推方程与生成函数 — 生成函数是计数的代数化方法
- 离散数学-离散概率 — 组合数是概率计算的基础