斯特林数学习笔记

这个东西在数论以及生成函数有关问题上非常有用。

首先我们看看定义。

$\begin{bmatrix}n \\ m\end{bmatrix}$为第一类斯特林数,表示$n$个不同的元素放进$m$个无序圆排列的方案数。

$\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}$$

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

原理就是,对于第一类,要么最后一个元素单独作为一个圆排列,要么在之前$n-1$个元素后面插入一个元素。

第二类同理。


$$\sum_{i=0}^{+\infty}\begin{bmatrix}n \\ i\end{bmatrix}x^i=\prod_{i=0}^{n-1}(x+i)$$

这是第一类斯特林数的生成函数,我们可以使用数学归纳法来证明,也可以直接推导生成函数。

设$S_n(x)=\sum_{i=0}^n\begin{bmatrix}n \\ i\end{bmatrix}x^i$,则

$$S_n(x)=\sum_{i=0}^n\begin{bmatrix}n-1 \\ i-1\end{bmatrix}x^i+(n-1)\sum_{i=0}^n\begin{bmatrix}n-1 \\ i\end{bmatrix}x^i$$

$$=xS_{n-1}(x)+(n-1)S_{n-1}(x)$$

$$=(x+n-1)S_{n-1}(x)$$

得证。


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

这是第二类斯特林数的通项公式,实际上就是容斥,枚举有$i$个集合是空的,选出这$i$个集合,然后把$n$个不同元素放到$m-i$个不同集合,再对集合去除标号(除以$m!$)

其实这就是一个卷积,所以可以$O(n\log n)$求出第二类斯特林数的一行。

关于如何求斯特林数我专门写了另外一篇博客,可以看看。


$$x^k=\sum_{i=0}^ki!\binom{x}{i}\begin{Bmatrix}k \\ i\end{Bmatrix}=\sum_{i=0}^kx^{\underline{i}}\begin{Bmatrix}k \\ i\end{Bmatrix}$$

这是通常幂和下降幂的表示,这个式子就可以做一些题目了。

CF932E

【GDOI2018】滑稽子图

Luogu4827

类似的公式还有:

$$x^k=\sum_{i=0}^k(-1)^{k-i}x^{\overline{i}}\begin{Bmatrix}k \\ i\end{Bmatrix}$$

$$x^{\overline{k}}=\sum_{i=0}^k\begin{bmatrix}k \\ i\end{bmatrix}x^i$$

$$x^{\underline{k}}=\sum_{i=0}^k(-1)^{k-i}\begin{bmatrix}k \\ i\end{bmatrix}x^i$$

(其实第二个公式在上面已经见过了)

还有一道用第一类斯特林数的题目(CF960G),建议大家思考一下。

posted @ 2019-05-30 14:04  mizu164  阅读(188)  评论(0编辑  收藏  举报