组合基础2 第一类斯特林数 第二类斯特林数

xn=x(x+1)(x+2)(x+n1)x^{\overline{n}}=x(x+1)(x+2)\cdots(x+n-1)xn=x(x+1)(x+2)⋯(x+n−1),xn=x(x1)(x2)(xn+1)x^{\underline{n}}=x(x-1)(x-2)\cdots(x-n+1)xn​=x(x−1)(x−2)⋯(x−n+1)。

第一类斯特林数

定义为xnx^{\overline{n}}xn的mmm次项系数,即xn=i=0n[ni]xix^{\overline{n}}=\sum_{i=0}^n\begin{bmatrix}n\\i\end{bmatrix}x^ixn=∑i=0n​[ni​]xi。组合意义为将nnn个数分为mmm个环的方案数。

可在O(nlogn)O(n\log n)O(nlogn)内求[ni]\begin{bmatrix}n\\i\end{bmatrix}[ni​]。

第二类斯特林数

组合意义为将nnn个数分为mmm个无区别组的方案数。定义为xn=i=0n{ni}xix^n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline{i}}xn=∑i=0n​{ni​}xi​。

可以用容斥原理求斯特林数,枚举几个组为空即可。公式为{nm}=1m!i=0m(1)i(mi)(mi)n\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}\sum_{i=0}^m(-1)^i\binom{m}{i}(m-i)^n{nm​}=m!1​i=0∑m​(−1)i(im​)(m−i)n

幂的转换

由各种方法可得:
xn=i=0n{ni}xi(1)nix^n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}x^{\overline{i}}(-1)^{n-i}xn=i=0∑n​{ni​}xi(−1)n−i
xn=i=0n[ni]xi(1)nix^{\underline{n}}=\sum_{i=0}^n\begin{bmatrix}n\\i\end{bmatrix}x^i(-1)^{n-i}xn​=i=0∑n​[ni​]xi(−1)n−i
以上两个定义式和两个幂的转换公式可简记为正降卷升,一归二歧(“正”指挨个乘)。

把两个式子拼起来可得斯特林反演。把一个式子带到另一个里去可得翻转公式

练习题

幂和

i=1nik=i=1nj=0k{kj}ij=j=0k{kj}i=1nij=j=0k{kj}j!i=1n(ij)=j=0k{kj}j!(n+1j+1)\begin{aligned} \sum_{i=1}^n i^k &=\sum_{i=1}^n\sum_{j=0}^k \begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=1}^ni^{\underline j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}j!\sum_{i=1}^n{i\choose j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}j!{n+1\choose j+1}\\ \end{aligned}i=1∑n​ik​=i=1∑n​j=0∑k​{kj​}ij​=j=0∑k​{kj​}i=1∑n​ij​=j=0∑k​{kj​}j!i=1∑n​(ji​)=j=0∑k​{kj​}j!(j+1n+1​)​

*2018.12

上一篇:LMS算法实现自适应滤波器(C语言版)


下一篇:javafx面积图AreaChart