组合数学学习笔记1
基本公式:
\[{n \choose m} = \frac{n!}{m!(n-m)!} \\
A_n^m=P_n^m=\frac{n!}{(n-m)!} \\
{n\choose m}={n\choose n-m} \\
{n\choose m}={\frac{n}{m}{n-1\choose m-1}} \\
{n\choose m}={n-1\choose m-1}+{n-1\choose m} \\
\sum_{i=0}^n {n\choose i}=2^n \\
{n \choose r}{r \choose k}={n \choose k}{n-k \choose r-k}
\]
组合意义:从n个中选m个,如果选最后一个,则有 ${n-1\choose m-1} $ 种方案,否则有 \({n-1\choose m}\) 种方案
每个元素都有选和不选两种方案,一共有 \(2^n\) 种方案
注意约定 \({0 \choose 0}=1,{i \choose j}=0 \ (i<j)\)
组合数竖行和公式
\[\sum_{i=0}^n {i \choose k} = {n+1 \choose k+1}
\]
对 n 进行归纳,对于 n=0 ,有 \({0 \choose k}=[k=0]={1 \choose k+1}\)
设原式对 n-1 成立,则对于 n:
\[\begin{aligned}
\sum_{i=0}^n {i\choose k}&=\sum_{i=0}^{n-1} {i\choose k}+{n\choose k} \\
&={n\choose k+1} + {n\choose k} \\
&={n+1\choose k+1}
\end{aligned}
\]
可知原命题成立
带权竖行和公式
\[\sum_{i=0}^n i{i \choose k} = n{n+1 \choose k+1}-{n+1 \choose k+2}
\]
这个和上面的竖行和公式可以一起从生成函数的角度考虑
具体地,两个和式关于 \(k\) 的生成函数分别为:
\[\sum_{i=0}^n (x+1)^i \\
\sum_{i=0}^n i(x+1)^i
\]
考虑等比数列和带权等比数列求和:
\[\sum_{i=0}^{n-1} p^i=\frac{p^n-1}{p-1}\\
\sum_{i=0}^{n-1} i p^i=\frac{n p^n-p\frac{p^n-1}{p-1}}{p-1}
\]
代入 \(p=x+1\) 后提取系数即可
范德蒙卷积:
\[\sum_{i=0}^k {n\choose i}{m\choose k-i}={n+m\choose k}
\]
组合意义:从前 n个数中选 i 个,再从后 m 个数中选 k-i 个,乘法原理后求和
二项式定理:
\[(a+b)^k=\sum_{i=0}^k{k\choose i}a^{k-i}b^k
\]
归纳易证
多重集的排列组合:
多重集的排列(多重组合数):
\[S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\} , \sum_{i=1}^k n_i=n
\]
\[{n\choose n_1,n_2,\cdots,n_k}=\frac{n!}{\prod_{i=1}^k n_i!}
\]
多重集的组合:
取 r 个物品,物品一共有 k 种,每种物品有无限个(即对于多重集 \(S\) , 有 \(\forall i \in [1,k],r\leq n_i\))
插板法,将物品分成 k 块,每一块可以为空,等价于分成 n+k 个非空块
\[Ans={r+k-1\choose k-1}={r+k-1\choose r}
\]
容斥原理:
\[|\bigcup_{i=1}^n A_i|=\sum_{i=1}^n |A_i|-\sum_{1\leq i < j\leq n}|A_i \cap A_j|+\cdots +(-1)^{n-1}|\bigcap_{i=1}^n A_i|
\]
容斥的意义在于可以将所谓“恰好”满足的限制转化为“至少”/“至多”满足的性质,从而简化求解
容斥可以嵌套,自身不带组合系数
二项式反演:
\[f_n=\sum_{i=0}^n{n\choose i}g_i \iff g_n=\sum_{i=0}^n (-1)^{n-i}{n\choose i}f_i
\]
证明:直接带入即可证明,不过这里讲一个利用容斥的更巧妙、更本质的方法
德摩根律(De Morgan):
\[\overline{\bigcup_{i=1}^n A_i}=\bigcap_{i=1}^n\overline{A_i} \\
\overline{\bigcap_{i=1}^n A_i}=\bigcup_{i=1}^n\overline{A_i}
\]
其中上划线表示补集,这里记全集为 \(S\)
德摩根律实质上说明了集合恒等式成对出现,那么观察到容斥原理中一边是并,一边是交
两边两次分别运用德摩根律,得到两个恒等式:
\[|\bigcap_{i=1}^n\overline{A_i}|=|S|-|\bigcup_{i=1}^n A_i|=|S|-\sum_{i=1}^n |A_i|+\sum_{1\leq i < j\leq n}|A_i \cap A_j|+\cdots +(-1)^n|\bigcap_{i=1}^n A_i| \\
|\bigcap_{i=1}^nA_i|=|S|-|\bigcup_{i=1}^n \overline{A_i}|=|S|-\sum_{i=1}^n |\overline{A_i}|+\sum_{1\leq i < j\leq n}|\overline{A_i} \cap \overline{A_j}|+\cdots +(-1)^n|\bigcap_{i=1}^n \overline{A_i}| \\
\]
注意到以上两个恒等式是等价的
假设相同个数的集合交集大小相等,设 \(f(i)\) 表示 i 个补集交集大小, \(g(i)\) 表示 i 个原集的交集大小
导出两个等价的恒等式
\[f(n)=\sum_{i=0}^n (-1)^i{n \choose i}g(i) \iff g(n)=\sum_{i=0}^n (-1)^i{n \choose i}f(i)
\]
这个恒等式比二项式反演的上述形式更加对称易记,记 \(h(i)=(-1)^ig(i)\) 即可导出上述形式
圆排列与错排列:
圆排列:
定义:从 n 中选出 m 个数组成一个环的排列数
\[Q_n^k=\frac{A_n^k}{k}=\frac{n!}{(n-k)!\times k}
\]
错排列:
定义:没有一个数在原来位置上的排列
递推:假设依次加入1~n ,两种情况:
- 前 n-1 个数全部错排,直接将当前位与任意一位交换即可,一共 \(D_{n-1}\times(n-1)\) 种
- 前 n-1 个数只有一个不为错排,将当前数与该数交换,一共 \(D_{n-2}\times(n-1)\) 种
所以\(D_n=(n-1)(D_{n-1}+D_{n-2})\)
通项:容斥原理
钦定 i 位待在自己的位置上,剩下的就有 (n-i)! 位任意排列(这是一个有关“至少”的限制,较好处理),则:
\[\begin{aligned}
D_n&=n!-{n\choose 1}(n-1)!+{n\choose 2}(n-2)!-\cdots+(-1)^n {n\choose n}\times 0! \\
&=\sum_{i=0}^n (-1)^i{n\choose i}(n-i)! \\
&=n! \times (\sum_{i=0}^n(-1)^i \frac{1}{i!})
\end{aligned}
\]
斯特林数:
上升/下降幂:
\[\begin{aligned}
x^{\overline{i}}&=x(x+1)(x+2)\cdots(x+i-1)=\frac{(x+i-1)!}{(x-1)!}=A_{x+i-1}^{i} &\text{(上升幂)}\\
x^{\underline{i}}&=x(x-1)(x-3)\cdots(x-i+1)=\frac{x!}{(x-i)!}=A_x^i &\text{(下降幂)}
\end{aligned}
\]
带权公式
\[((x+1)^n)'=\sum_{i=0}^n {n \choose i} (x^i)' \\
n(x+1)^{n-1}=\sum_{i=0}^{n-1} {n\choose i}i x^{i-1} \\
\sum_{i=0}^{n} {n\choose i}=n2^{n-1}
\]
类似地,取 k 阶导数
\[\sum_{i=0}^n i^k{n \choose i}=n^{\bar{k}}2^{n-k}
\]
第一类斯特林数:
定义:将 n 个数分成 m 个环的方案个数(记号:\({n\brack m}\) 或\(S_1(n,m)\))
递推:
\[{n\brack m}={n-1 \brack m-1}+(n-1)\times {n-1 \brack m}
\]
组合意义:考虑放入第 n 个数,依然两种情况:
- 自己成环,贡献 \({n-1\brack m-1}\)
- 放在其他数的环内,一共有 n-1 个位置可以放,贡献 \((n-1)\times{n-1\brack m}\)
性质:
\[\sum_{i=0}^n {n \brack i}=n!
\]
组合意义:将一个置换分解为一个环一一对应,环的总个数就是第一类斯特林数的单行和
\[x^{\underline{n}}=\sum_{i=0}^n (-1)^{n-i}{n\brack i}x^i \\
x^{\overline{n}}=\sum_{i=0}^n{n\brack i}x^i
\]
证明:上升幂式子实质上正在说明,${n \brack i} $ 是多项式 \(f_n(x)=\prod_{i=0}^{n-1}(x+i)\) 的 i 次项系数
对 n 归纳,命题在 n=1 时显然成立
假设命题对 n 成立,则对于 n+1 而言:
\[\begin{aligned}
f_{n+1}(x)&=\prod_{i=0}^n(x+i) \\
&=f_n(x)(x+n) \\
&=({n\brack n}x^n+\cdots+{n\brack 2}x^2+{n\brack 1}x)(x+n) \\
&=x^{n+1}+(n{n\brack n}+{n\brack n-1})x^{n}+\cdots+(n{n\brack 2}+{n\brack 1})x^2+(n{n\brack 1})x \\
&=\sum_{i=0}^{n+1}{n+1\brack i}x^i
\end{aligned}
\]
对于下降幂,将 \(f_n\) 的式子中的 \(x+i\) 改为 \(x-i\) 即可
单行和的式子实际上是 \(f_n(0)\) 的特殊情况
第二类斯特林数:
定义:将 n 个数分成 m 个集合的方案数(记为 \({n \brace m}\)或者 \(S_2(n,m)\))
递推:
\[{n\brace m}={n-1\brace m-1}+m\times{n-1\brace m}
\]
组合意义:同样考虑放入第 n 个数
- 新建一个集合,贡献 \({n-1\brace m-1}\)
- 加入某个原有集合,共有 m 个集合,贡献 \({m\times {n-1\brace m}}\)
性质:
\[\sum_{i=0}^m {n\brace i}{m \choose i}i!=\sum_{i=0}^m {n\brace i}m^{\underline{i}}=m^n
\]
组合意义:将 n 个数放入 m 个有编号盒子中,等价于从 m 个盒子中选若干个必须放,乘上对应的阶乘相当于添加编号
对这个式子二项式反演得:
\[{n\brace m}=\frac{1}{m!} \sum_{i=0}^m(-1)^i {m\choose i}(m-i)^n
\]