斯特林数

数学


第二类斯特林数

我们定义 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 表示把 \(n\) 个数划分到 \(m\) 个非空集合的方案数,这个就是第二类斯特林数。

怎么求呢?有 \(O(nm)\) 的递推式:

\[\begin{Bmatrix}n\\m\end{Bmatrix} = \begin{Bmatrix}n-1\\m-1\end{Bmatrix} + m \begin{Bmatrix}n-1\\m\end{Bmatrix} \]

很好理解啊,就是新来一个数看他是放到一个已有集合里还是新开集合。

还有

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

这个也好说,就是先钦定集合有顺序,那么就可以容斥枚举空的集合。

我们定义 $n^{\underline{k}} = \sum_{i=0}^{k - 1} (n-i), n^{\overline{k}} = \sum_{i=0}^{k - 1} (n+i) $

有什么用呢?

可以转化整次幂,有:

\[m^n = \sum_{i=0}^{m} \begin{pmatrix}m\\i\end{pmatrix} \begin{Bmatrix}n\\i\end{Bmatrix} i! = \sum_{i=0}^{m} m^{\underline{i}} \begin{Bmatrix}n\\i\end{Bmatrix} \]

这样就有一个把整次幂转化成下降幂的做法,由于下降幂可以拆成组合数,有时候就能做进一步推导。

如果我们把 \(m = -m\) 带入上一个式子,那么就有:

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

移项,就有:

\[m^n = \sum_{i=0}^{m} (-1)^{n-i} m^{\overline{i}} \begin{Bmatrix}n\\i\end{Bmatrix} \]

这样就有一个把整次幂转化成上升幂的做法。


第一类斯特林数

我们称 \(\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} \]

然后我们发现:

\[m^{\overline{n}} = \sum_{i=0}^m \begin{bmatrix}n\\i\end{bmatrix} m^i \]

这个是为什么呢,这个可以看作是展开多项式的结果,我们发现展开 \(m^{\overline{n}}\) 的过程,跟递推式一样。

同样的,把 \(m = -m\) 带入进去,就有:

\[m^{\underline{n}} = \sum_{i=0}^m (-1)^{n-i} \begin{bmatrix}n\\i\end{bmatrix} m^i \]


我们列一下上面的 \(4\) 个式子:

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

\[m^n = \sum_{i=0}^{m} (-1)^{n-i} m^{\overline{i}} \begin{Bmatrix}n\\i\end{Bmatrix} \]

\[m^{\overline{n}} = \sum_{i=0}^m m^i \begin{bmatrix}n\\i\end{bmatrix} \]

\[m^{\underline{n}} = \sum_{i=0}^m (-1)^{n-i} m^i \begin{bmatrix}n\\i\end{bmatrix} \]

通过斯特林数就可以实现上升幂,整次幂,下降幂的转化。

怎么记忆?我们发现从小往大转化需要乘容斥系数,然后从整次幂转化出去的要用第二类,转化成整次幂的要用第一类。

斯特林数反演

就是:

\[f(n) = \sum_{i=0}^n g(i) \begin{Bmatrix}n\\i\end{Bmatrix} \Longleftrightarrow g(n) = \sum_{i=0}^n (-1)^{n-i} f(i) \begin{bmatrix}n\\i\end{bmatrix} \]

不会解释,容易发现上面的两个式子就有两组斯特林数反演。

posted @ 2026-09-04 20:56  Air2011  阅读(31)  评论(1)    收藏  举报