斯特林数 笔记

这篇文主要记录一些lizbaka在学习斯特林数时遇到的一些比较关键的点
此文条理较为混乱,不甚完善,主要以作为笔记为目的,仅供参考

第二类斯特林数

第二类斯特林数{nk}\begin{Bmatrix}n\\k\end{Bmatrix}表示nn个元素划分成kk个非空无标号集合的方案数

其递推方程为:

{nk}={n1k1}+k×{n1k}\begin{Bmatrix}n\\k\end{Bmatrix}=\begin{Bmatrix}n-1\\k-1\end{Bmatrix}+k\times\begin{Bmatrix}n-1\\k\end{Bmatrix}

{00}=1\begin{Bmatrix}0\\0\end{Bmatrix}=1

其意义为,最后一个元素,单独组成一个集合,或加入已有的任意一个集合

第二类斯特林数{nk}\begin{Bmatrix}n\\k\end{Bmatrix}又称为“nn子集kk


第二类斯特林数的展开式为:

{nk}=1k!i=0k(1)i(ki)(ki)n\begin{Bmatrix}n\\k\end{Bmatrix}=\frac{1}{k!}\sum_{i=0}^k(-1)^i\begin{pmatrix}k\\i\end{pmatrix}(k-i)^n

考虑盒子有标号,且允许有空盒的情况

那么有ii个盒子为空的方案数即为(ki)(ki)n\begin{pmatrix}k\\i\end{pmatrix}(k-i)^n

容斥一下,再除以一个阶乘变成无标号的情况即可

进一步整理,式子化为

{nk}=i=0k(1)ii!×(ki)n(ki)!\begin{Bmatrix}n\\k\end{Bmatrix}=\sum_{i=0}^k\frac{(-1)^i}{i!}\times \frac{(k-i)^n}{(k-i)!}

这是一个卷积形式的式子,可以利用FFT/NTT求得


第一类斯特林数

第一类斯特林数[nk]\begin{bmatrix}n\\k\end{bmatrix}表示nn个元素划分成kk圆排列的方案数

其递推方程为:

[nk]=[n1k1]+(n1)×[n1k]\begin{bmatrix}n\\k\end{bmatrix}=\begin{bmatrix}n-1\\k-1\end{bmatrix}+(n-1)\times\begin{bmatrix}n-1\\k\end{bmatrix}

[00]=1\begin{bmatrix}0\\0\end{bmatrix}=1

其意义为,最后一个元素,单独组成一个圆排列,或者插入到已有的任意一个元素的左侧

第一类斯特林数[nk]\begin{bmatrix}n\\k\end{bmatrix}又称为“nn轮换kk


每一个排列都与一个轮换的集合等价*(《具体数学》P217P218P217-P218)*

于是有:

k=0n[nk]=n!(n0)\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}=n!(n\ge0)

斯特林数与常幂/下降幂/上升幂

记下降幂:

xn=x×(x1)×(x2)×(xn+1)x^{\underline n}=x\times(x-1)\times(x-2)\cdots\times(x-n+1)

记上升幂:

xn=x×(x+1)×(x+2)×(x+n+1)x^{\overline n}=x\times(x+1)\times(x+2)\cdots\times(x+n+1)

这常常出现在组合计数中


幂之间的转换公式*(《具体数学》P219P220P219-P220)*:

xn=k=0n[nk]xkx^{\overline n}=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}x^k

xn=k=0n[nk](1)nkxkx^{\underline n}=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}(-1)^{n-k}x^k

xn=k=0n{nk}xk=k=0n{nk}(1)nkxkx^n=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline k}=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}(-1)^{n-k}x^{\overline k}

事实上,我们可以建立常幂与组合数之间的关系:

xn=k=0n{nk}xk=k=0n{nk}×k!×(xk)x^n=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline k}=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}\times k!\times \begin{pmatrix}x\\k\end{pmatrix}

从而转化到组合数进行求解