斯特林数学习笔记

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

首先我们看看定义。

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

$egin{Bmatrix}n \ mend{Bmatrix}$为第二类斯特林数,表示$n$个不同的元素放进$m$个无序集合的方案数。

然后我们就可以看看它有什么好玩的性质了。


首先是递推公式。

$$egin{bmatrix}n \ mend{bmatrix}=egin{bmatrix}n-1 \ m-1end{bmatrix}+(n-1)egin{bmatrix}n-1 \ mend{bmatrix}$$

$$egin{Bmatrix}n \ mend{Bmatrix}=egin{Bmatrix}n-1 \ m-1end{Bmatrix}+megin{Bmatrix}n-1 \ mend{Bmatrix}$$

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

第二类同理。


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

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

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

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

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

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

得证。


$$egin{Bmatrix}n \ mend{Bmatrix}=frac{1}{m!}sum_{i=0}^m(-1)^iinom{m}{i}(m-i)^n$$

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

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

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


$$x^k=sum_{i=0}^ki!inom{x}{i}egin{Bmatrix}k \ iend{Bmatrix}=sum_{i=0}^kx^{underline{i}}egin{Bmatrix}k \ iend{Bmatrix}$$

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

CF932E

【GDOI2018】滑稽子图

Luogu4827

类似的公式还有:

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

$$x^{overline{k}}=sum_{i=0}^kegin{bmatrix}k \ iend{bmatrix}x^i$$

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

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

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

原文地址:https://www.cnblogs.com/AThousandMoons/p/10949178.html