组合数学学习笔记

组合数学学习笔记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 \]

posted @ 2021-11-19 08:23  yyyyxh  阅读(164)  评论(0编辑  收藏  举报