第二类斯特林数总结

第二类斯特林数总结

标签: 第二类斯特林数


最近做题的时候遇到了一些跟第二类斯特林数有关的东西,发现网上的资料不是很多,于是写一篇博客来总结一下。

第二类斯特林数

定义

第二类斯特林数\(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.

容斥原理:

\[S(n,m)={\frac 1 {m!}}\sum_{k=0}^m (-1)^k C(m,k)(m-k)^n \]

即枚举空盒的个数,剩下的随意放置,由于盒子是相同的最后要除以\(m!\)
注意到这个式子是一个卷积,所以可以在\(O(nlogn)\)内求出\(S(n,0),S(n,1)......\)

性质

只有一个公式

\[n^k=\sum_ { i=0}^k S(k,i)×i!×C(n,i) \]

很好理解,左边就是k个球可以任意放置在n个盒子里。
右边就是枚举非空盒子的数量i,那么把k个球放在i个盒子(盒子不同,需要乘上一个i!)里面再乘上选出i个非空盒子的方案数。

有了这个东西,我们可以很方便的维护一些东西。

组合等式推导

upd:感觉以前写的菜爆了。。。。更新一点吧

上面的性质与求法都是基于组合意义而来的,接下来我们采用一个具有组合意义的等式,将其通过一些变换得到上面的等式。

\[n^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} n^{\underline k} \]

\(x^{\underline k}\)\(x\)\(k\)次下降幂,就是\(x \times (x-1) \times(x-2)....\times(x-k+1)\)
(其实就是上面的性质啦)
当然准确来说这个式子才是定义式,因为这个式子具有清晰的组合意义。
这个式子可以方便的得到递推式:

\[\sum_{k=0}^m \begin{Bmatrix} m\\k\end{Bmatrix} n^{\underline k}= \sum_{k=1}^{m} \begin{Bmatrix} m-1\\k-1\end{Bmatrix} n^{\underline {k}} +\sum_{k=1}^{m} k\begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k}} =\\ \sum_{k=0}^{m-1} \begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k+1}} +\sum_{k=1}^{m} k\begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k}} =(n-k+k)n^{m-1}=n^m\]

当然这个步骤写的不太严谨,如果把上面的式子倒过来就是正确的证明步骤,但是这样推就不太好想(不过我们已经知道了结论就随便了)。

好像还有一个等式?

\[\begin{Bmatrix} m \\k \end{Bmatrix}={\frac 1 {k!}}\sum_{i=0}^k (-1)^{k-i} \binom {k} {i} i^m \]

再来审视一下之前的定义式。

\[k^m=\sum_{i=0}^k \begin{Bmatrix} m \\i \end{Bmatrix} i! \binom{k}{i} \]

我们把\(m\)看作常量,令\(f_i=i^m,g_i=\begin{Bmatrix} m \\i \end{Bmatrix} i!\)
那么\(\binom{k}{i}\)相当于从\(g_i\)\(f_k\)的一个转移矩阵
直接二项式反演,得

\[\begin{Bmatrix} m \\k \end{Bmatrix} k!=\sum_{i=0}^k (-1)^{k-i} \binom {k} {i}i^m \]

再把\(k!\)移过去就得到最初的式子了。

斯特林反演

对第二类斯特林数的反演。

\[q_n=\sum_{i=1}^{n}\begin{Bmatrix}n \\ i\end{Bmatrix}p_i \Leftrightarrow p_n=\sum_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n \\ i\end{bmatrix}q_i \]

其中\(\begin{bmatrix} n\\ m\end{bmatrix}\)是第一类斯特林数,也可以写作\(s(n,m)\),在不作特殊的说明情况的下(即\(s_s(n,m)\)代表有符号的第一类斯特林数),本文中写到的均为无符号的第一类斯特林数。

在这里,我们只需要知道\(s(n,m)\)的生成函数。

\[x^{\underline m}=\sum_{k=0}^m (-1)^{m-k}\begin{bmatrix} m\\k\end{bmatrix} x^k\quad [1] \\x^{\overline m}=\sum_{k=0}^m \begin{bmatrix} m\\k\end{bmatrix} x^k \]

其实这差不多就是有符号和无符号的区别,一个是下降幂,一个是上升幂。

我们发现,这个式子与上面第二类斯特林数的定义式出奇的像。

\[x^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} x^{\underline k} \quad [2] \]

\([1]\)式带入\([2]\)中,得

\[x^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} \sum_{l=0}^k (-1)^{k-l}\begin{bmatrix} k\\l\end{bmatrix} x^l \\ =\sum_{l=0}^m x^l \sum_{k=l}^m (-1)^{k-l}\begin{Bmatrix} m \\k \end{Bmatrix}\begin{bmatrix} k\\l\end{bmatrix}\]

显然得到等式

\[[l=m]=\sum_{k=l}^m (-1)^{k-l}\begin{Bmatrix} m \\k \end{Bmatrix}\begin{bmatrix} k\\l\end{bmatrix} \]

接下来,我们将斯特林反演的两式相互带入,不难得出其等价与上式。

值得一提的是,我们令矩阵\(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\)互逆。

posted @ 2018-02-07 15:43  Deadecho  阅读(25771)  评论(12编辑  收藏  举报