斯特林数入门

众所周知,斯特林数有2种(不是斯大林数,英文名字叫string)

这两种数没有什么关系,只是因为同一个人发现的所以叫同一个名字。


 

1.定义:

1.1第一类斯特林数:

将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.2第二类斯特林数:

将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.3斯特林数的求法:

显然的,对于这两种斯特林数我们可以在$O(n^2)$的复杂度下求出。

另外,对于第二类斯特林数我们可以考虑一种容斥求法。

$\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}\sum_{i=0}^{m}(-1)^iC_m^i(m-i)^n$

意义比较显然,我们规定m个集合中必定有i个集合是空的,其余的集合是不是空的无所谓。这样的方案数显然是$C_m^i(m-i)^n$

虽然这样比较好求,但其余的集合是不是空的无所谓这一点会让我们算重,导致答案偏大,因此我们容斥一下。

最后,由于涉及到了组合数所以这样得出的答案是有顺序的。所以除以顺序就好了。


2.性质:

2.1斯特林数普通幂转下降幂:

先来看看公式:

$i^k=\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}\binom{i}{j}j!$

然后分析意义:

$i^k$的组合意义就是k个不同的球放入i个不同的盒子的方案数。

我们考虑如何求出这个方案数。

首先枚举有j个盒子中被放入了小球。

然后求出从i个盒子中选取j个放小球的方案数就是$C_i^j$

然后求出k个不同小球放入j个相同盒子的方案数就是$\begin{Bmatrix}k\\j\end{Bmatrix}$

由于我们是放入不同的盒子,所以我们需要关注顺序,因此答案乘$j!$

2.2斯特林数反演

$f(n)=\sum_{k=0}^{n}\begin{Bmatrix}n\\k\end{Bmatrix}g(k)\Leftrightarrow g(n)= \sum_{k=0}^{n}(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}f(k)$

$f(n)=\sum_{k=0}^{n}\begin{bmatrix}n\\k\end{bmatrix}g(k)\Leftrightarrow g(n)= \sum_{k=0}^{n}(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}f(k)$

posted @ 2020-07-08 09:06  神之右大臣  阅读(297)  评论(0编辑  收藏  举报