wzx稳啦/ke
写这个真的累。
Sterling Number Note
在组合数学中,斯特林(Stirling)数可指两类数,第一类斯特林数和第二类斯特林数
这些均由18世纪数学家James Stirling提出的,并在著作Methodous Differentialis中首次使用
自此,斯特林数成为又一广泛运用到处理组合问题的一大利器
${\large\color{SpringGreen}{第一类斯特林数}}$
定义
$\begin{bmatrix}n\\m \end{bmatrix}$表示$n$个元素分成$m$个环的方案数
显然:$\begin{bmatrix}n\\m \end{bmatrix}=\begin{bmatrix}n-1\\m-1 \end{bmatrix}+(n-1)*\begin{bmatrix}n-1\\m \end{bmatrix}$
理解:考虑从n-1个元素推过来,如果两个空环肯定是不符合的
空一个环则单独成环,如果n-1的时候就没有空环就任意放在一个元素前
性质
$n!=\sum\limits_{i=0}^n \begin{bmatrix}n\\i \end{bmatrix}$
理解:其实本质就是置换,一个环则为一组轮换,每种排列都会对应着唯一 一种置换
归纳法:
证明类上,不再赘述
求第一类斯特林数
其实把表刷出来就差不多了,可以理解为根据
逐渐转移
至此,我们可以通过分治FFT在$O(nlog^2n)$求出一行的第一类斯特林数
还有一种类似于多项式求逆模式$O(nlogn)$的方法
$F(x)^n=\prod\limits_{i=0}^{n-1}(x+i),F(x)^{2n}=F(x)^nF(x+n)^n$
考虑当我们求出$(F(x)^n=\sum\limits{i=0}^{n}a_ix^i):$
$\begin{aligned}\\
F(x+n)^{n}=\sum\limits{i=0}^{n}ai(x+n)^i\\
=\sum\limits{i=0}^nai\sum\limits{j=0}^i{i\choose j}n^{i-j}x^j\\
=\sum\limits{i=0}^n(\sum\limits{j=i}^n {j\choose i}n^{j-i}aj)x^i\\
=\sum\limits{i=0}^n(\sum\limits{j=i}^n \frac{j!}{i!(j-i)!}n^{j-i}a_j)x^i\\
=\sum\limits{i=0}^n (i!)^{-1}x^i (\sum\limits_{j=i}^n (\frac{n^{j-i}}{(j-i)!})\cdot (j!a_j))\\
\end{aligned}$
我们通过左半部分系数能得到右半部分系数,再相乘一下就得到了总体的系数
1 |
|
${\large\color{SpringGreen}{第二类斯特林数}}$
定义
$\begin{Bmatrix}n\\m\end{Bmatrix}$表示n个有区别的小球丢进m个无区别的盒子,无空盒子的方案数
显然:$\begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m*\begin{Bmatrix}n-1\\m\end{Bmatrix}$
理解:考虑从n-1个小球推过来,如果两个空盒子肯定是不符合的
空一个盒子则只能放到那个空盒子里面了,如果n-1的时候就没有空箱子就随便放
性质
当然也可以写成:
到后面反演时我们会这样写:
看看后面的$m^{\underline i}$就懂了
理解:$m^n$为$n$个有区别的小球丢进$m$个有区别的盒子,允许空盒子
枚举有效盒子的个数,再从$m$个盒子选$i$个盒子,然后$n$个小球丢进$i$个盒子
转换到组合表示
第二类斯特林数显然是和排列组合有关系的,转换过来:
理解:如果空箱子的情况我们也算进去,答案显然是$\frac{m^n}{m!}$
反过来求第二类斯特林数,又得减掉这种情况:
选$k$个空盒子,然后小球放到其他的盒子里
但最后我们求出来的答案为有区别的盒子,转换过来要$×\frac{1}{m!}$
求第二类斯特林数
大概都能猜到是卷积形式了吧,随手展开一下:
至此,我们能实现O(nlogn)求出S(n)这一行的第二类斯特林
第二类斯特林数与自然数幂的关系
关于$\sum\limits{i=0}^nC_i^j=C{n+1}^{j+1}$的理解:枚举j+1的右端点i+1,则相当于从$i$个点中选$j$个点
${\large\color{SpringGreen}{斯特林反演}}$
定义
斯特林反演:
总结上面我们所推倒的性质
补充
前置
我们先证这个反转公式
反转公式1:
反转公式2:
推式
已知:
则有