组合数学
基本计数原理、排列与组合、容斥原理、鸽巢原理、递推关系、生成函数、Catalan数、Stirling数。
1. 基本计数原理
1.1 加法原理
若完成一件事有 类方法,第 类有 种方法,各类方法互不相容,则完成该事共有 种方法。
1.2 乘法原理
若完成一件事需 个步骤,第 步有 种方法,则完成该事共有 种方法。
例:从 A 到 B 有3条路,从 B 到 C 有4条路,从 A 经 B 到 C 有 种走法。
2. 排列与组合
2.1 排列
无重复排列:从 个不同元素中取 个排列:
全排列:
有重复排列:从 个不同元素中取 个(允许重复)排列:
圆排列: 个不同元素的圆排列数:
2.2 组合
无重复组合:从 个不同元素中取 个:
多重组合(可重复组合):从 种元素中取 个(允许重复):
例:将10个相同的球放入3个不同的盒子,有多少种方法?
可重复组合:。
2.3 组合恒等式
Pascal 恒等式:
二项式定理:
特殊值:
- (Vandermonde 恒等式的特例)
Vandermonde 恒等式:
2.4 多重集的排列
设多重集 ,,则全排列数为:
例:MISSISSIPPI 的字母排列数。
, , , ,共11个字母。
3. 容斥原理
3.1 两集合
3.2 三集合
3.3 一般形式
3.4 错排问题
个元素的错排(derangement)数:
例:4个人的帽子全戴错的方案数。
3.5 Euler 函数
不超过 且与 互素的正整数个数:
其中 取遍 的所有不同素因子。
例:。
4. 鸽巢原理
4.1 基本形式
将 个物品放入 个盒子,至少有一个盒子包含至少2个物品。
4.2 加强形式
将 个物品放入 个盒子,则至少有一个盒子包含至少 个物品。
4.3 应用
例:在任意 个正整数中,必有两个数之差是 的倍数。
考虑这 个数除以 的余数,余数只有 共 种,由鸽巢原理,必有两个数余数相同,其差是 的倍数。
例:在边长为1的正三角形中任取5个点,必有两点距离不超过 。
将正三角形分为4个边长为 的小正三角形,5个点放入4个区域,必有2个在同一区域,距离不超过 。
5. 递推关系
5.1 常系数线性齐次递推
特征方程:
求解:
- 单根 :贡献
- 重根 :贡献
例:Fibonacci 数列 ,,。
特征方程:,。
5.2 常系数线性非齐次递推
通解 = 齐次通解 + 非齐次特解
特解形式取决于 :
| 特解形式 | |
|---|---|
| (常数) | |
| ( 不是特征根) | |
| ( 是单特征根) |
6. 生成函数
6.1 定义
序列 的普通生成函数:
6.2 常用生成函数
| 序列 | 生成函数 |
|---|---|
6.3 应用
例:用1元、2元、5元硬币凑出 元的方案数。
生成函数: 为 展开式中 的系数。
6.4 指数生成函数
适用于排列计数问题。
| 序列 | 指数生成函数 |
|---|---|
7. Catalan 数
7.1 定义
前几项:
7.2 递推关系
7.3 组合意义
计数的问题:
- 对括号的合法匹配数
- 个矩阵连乘的加括号方式数
- 从 到 不越过对角线的路径数
- 个节点的不同二叉搜索树个数
- 凸 边形的三角剖分数
- 栈的合法出栈序列数
例:3对括号的合法匹配: 种。
((())), (()()), (())(), ()(()), ()()()
7.4 生成函数
8. Stirling 数
8.1 第一类 Stirling 数
:将 个不同元素排成 个非空轮换的方案数。
递推:
边界:,(),
与阶乘的关系:
8.2 第二类 Stirling 数
:将 个不同元素分成 个非空子集的方案数。
递推:
边界:,(),,
与幂的关系:
显式公式:
例:。
4个元素分成2个非空子集:, , , , , , 。
8.3 Bell 数
是 个元素的划分总数。
前几项:
递推:
指数生成函数: