第二类斯特林数总结
第二类斯特林数总结
标签: 第二类斯特林数
最近做题的时候遇到了一些跟第二类斯特林数有关的东西,发现网上的资料不是很多,于是写一篇博客来总结一下。
第二类斯特林数
定义
第二类斯特林数\(S(n,m)\)表示的是把n个不同的小球放在m个相同的盒子里方案数。
upd:为了看得清楚,有时候我们也用\(\begin {Bmatrix} n \\ m\end {Bmatrix}\)来表示\(S(n,m)\)
求法
一般有两种求法。
递推:
\(S(n,m)=S(n-1,m-1)+mS(n-1,m)\)
即讨论第一个球是否单独在一个盒子里面。
如果不独占一盒,那么把这个球放进任一个盒子,这个盒子就相当于与其他的盒子不同,那么在乘答案的时候就要多乘一个m.
容斥原理:
即枚举空盒的个数,剩下的随意放置,由于盒子是相同的最后要除以\(m!\)
注意到这个式子是一个卷积,所以可以在\(O(nlogn)\)内求出\(S(n,0),S(n,1)......\)
性质
只有一个公式
很好理解,左边就是k个球可以任意放置在n个盒子里。
右边就是枚举非空盒子的数量i,那么把k个球放在i个盒子(盒子不同,需要乘上一个i!)里面再乘上选出i个非空盒子的方案数。
有了这个东西,我们可以很方便的维护一些东西。
组合等式推导
upd:感觉以前写的菜爆了。。。。更新一点吧
上面的性质与求法都是基于组合意义而来的,接下来我们采用一个具有组合意义的等式,将其通过一些变换得到上面的等式。
\(x^{\underline k}\)是\(x\)的\(k\)次下降幂,就是\(x \times (x-1) \times(x-2)....\times(x-k+1)\)
(其实就是上面的性质啦)
当然准确来说这个式子才是定义式,因为这个式子具有清晰的组合意义。
这个式子可以方便的得到递推式:
当然这个步骤写的不太严谨,如果把上面的式子倒过来就是正确的证明步骤,但是这样推就不太好想(不过我们已经知道了结论就随便了)。
好像还有一个等式?
再来审视一下之前的定义式。
我们把\(m\)看作常量,令\(f_i=i^m,g_i=\begin{Bmatrix} m \\i \end{Bmatrix} i!\)。
那么\(\binom{k}{i}\)相当于从\(g_i\)到\(f_k\)的一个转移矩阵
直接二项式反演,得
再把\(k!\)移过去就得到最初的式子了。
斯特林反演
对第二类斯特林数的反演。
其中\(\begin{bmatrix} n\\ m\end{bmatrix}\)是第一类斯特林数,也可以写作\(s(n,m)\),在不作特殊的说明情况的下(即\(s_s(n,m)\)代表有符号的第一类斯特林数),本文中写到的均为无符号的第一类斯特林数。
在这里,我们只需要知道\(s(n,m)\)的生成函数。
其实这差不多就是有符号和无符号的区别,一个是下降幂,一个是上升幂。
我们发现,这个式子与上面第二类斯特林数的定义式出奇的像。
将\([1]\)式带入\([2]\)中,得
显然得到等式
接下来,我们将斯特林反演的两式相互带入,不难得出其等价与上式。
值得一提的是,我们令矩阵\(f_{i,j}=\begin{Bmatrix} i \\ j \end{Bmatrix},g_{i,j}=(-1)^{i-j} \begin{bmatrix} i\\ j \end{bmatrix}\)
那么根据上面的式子,有\(FG=E\),即矩阵\(F,G\)互逆。