组合数学
组合数学
一些基础的
组合数
\(n\choose m\)=\(n-1\choose m\)+\(n-1\choose m-1\)
\(\sum{n\choose i}=2^n\)
\(\sum_{i=0}^m{i\choose n}={m+1\choose n+1}\)
卡特兰数
\(C(n)=\sum_{i=0}^{n-1}C(i)C(n-i-1)\)
\(C(0)=1\)
\(C(n)={2n\choose n}-{2n\choose n-1}=\frac{2n\choose n}{n+1}\)
其前几项为(从第0项开始) : \(1, 1, 2, 5, 14, 42, 132, 429, 1430\)
第一类斯特林数
\([^n_k]\)表示将\(n\)个两两不同的元素,划分为\(k\)个非空圆排列的方案数。
\([^n_k]=[^{n-1}_{k-1}]+(n-1)[^{n-1}_{\ \ k}]\)
第二类斯特林数
一些恒等式
\(\sum{n\choose i}{i\choose j} = \sum{n\choose j}{n-j\choose i-j}\)
\(\sum{n\choose i}{m\choose k-i}={n+m \choose k}\)(范德蒙德卷积)
\(\sum{i\choose k}{n-i\choose m}={n+1\choose k+m+1}\)
生成函数
概念
普通型生成函数(OGF)
\(F(x)=\sum_{i>=0}f_ix^i\)
一些常见的\(OGF\):
\(\frac1{1-x}=1+x+x^2+...\)
\(\frac1{1+x}=1-x+x^2-x^3+...\)
指数型生成函数(EGF)
\(F(x)=\sum_{i>=0}\frac{f_i}{i!}x^i\)
当一类题卷积长成这样的时候:
\(f(n)=\sum{n\choose i}g(i)h(n-i)\)
我们推一推最后会推出\(\frac{f(n)}{n!}=\sum{\frac{g(i)}{i!}\frac{h(n-i)}{(n-i)!}}\)
所以我们用\(EGF\)卷起来,最后系数乘上\(n!\)得到\(f\)。
一些常见的\(EGF\):
\(e^x=\sum\frac{x^i}{i!}\)(泰勒展开)
\(e^{cx}=\sum\frac{c^ix^i}{i!}\)
应用
组合生成函数:
\(n\choose m\)=\([x^m](1+x)^n\)
\(n+m-1\choose m-1\)=\([x^n]\frac1{(1-x)^m}\)
第一、二类斯特林数:link
现在我们来证明一下上面的恒等式:\(\sum{n\choose i}{m\choose k-i}={n+m \choose k}\)
\({n\choose i}=[x^i](1+x)^n\),\({m\choose k-i}=[x^{k-i}](1+x)^m\)
来,卷起来。
原式\(=[x^k](1+x)^{n+m}={n+m \choose k}\)
再来一个:\(\sum{i\choose k}{n-i\choose m}={n+1\choose k+m+1}\)
我们要想卷起来,枚举的位置要是\(x\)的指数,那么我们用第二种。
\({i\choose k}={(i-k)+(k+1)-1\choose (k+1)-1}=[x^{i-k}]\frac1{(1-x)^{k+1}}\)
同理\({n-i\choose m}=[x^{n-i-m}]\frac1{(1-x)^{m+1}}\)
卷起来,原式\(=[x^{n-m-k}]\frac1{(1-x)^{k+m+2}}={n+1\choose k+m+1}\)