Stirling数小记

Stirling数小记


定义/组合意义

第一类斯特林数:\(\begin{bmatrix}n\\ m\end{bmatrix}\)表示\(n\)个不同元素分为\(m\)个圆排列的方案数

有标号的第一类斯特林数\(s(n,m)=(-1)^{n-m}\begin{bmatrix}n\\ m\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}\)

即新建一个圆排列,或者插入前面\(n-1\)个元素中任意一个的后面

显然的,有标号的第一类斯特林数递推式就是

\(\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}\)

即新建一个集合,或者加入前面的\(m\)个集合

\[\ \]


第二类斯特林数的通项公式

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

其组合意义是枚举生成了多少个有序的集合,然后容斥,最后除去集合的顺序

\[\ \]


生成函数表示与行/列求解

固定\(n\),以\(m\)为形式幂指数,则第一类斯特林数的普通生成函数

\(\begin{aligned}\text{OGF}=\prod_{i=0}^{n-1}(x+i)=x^{\overline{n}}\end{aligned}\)

(其意义就是上面的递推公式)

倍增+卷积二项展开求出\(F(x+i)\)即可做到\(O(n\log n)\)求出一行

\[\ \]

固定\(m\),以\(n\)为形式幂指数,则第一类斯特林数的指数型生成函数

\(\begin{aligned}\text{EGF}= & \frac{1}{m!}\cdot (\sum_{i=1}^{\infty}\frac{(i-1)!}{i!}x^i)^m\\= & \frac{1}{m!}\cdot (\sum_{i=1}^{\infty}\frac{x^i}{i})^m\end{aligned}\)

\(F(x)=\sum_{i=1}^{\infty}\frac{x^i}{i}\)

\(\begin{aligned} \because F'(x)=&\sum_{i=1}^{\infty}x^{i-1}=\frac{1}{1-x}\end{aligned}\)

\(\begin{aligned} \therefore F(x)=\int \frac{1}{1-x}=-\ln(1-x)\end{aligned}\)

\(\begin{aligned}\therefore \text{EGF} = & \frac{1}{m!}\cdot (-\ln(1-x))^m\\= & \frac{1}{m!}\cdot (-1)^m\cdot \ln^m(1-x)\end{aligned}\)

(就是百度百科上的那个,它什么都没讲清楚)

多项式快速幂即可做到\(O(n\log n-n\log ^2n)\)求一列

\[\ \]

而在上式的推导过程中额外加入\((-1)^m\)的常数,并且把\(x^i\)换成\((-x)^i\)可以得到有标号第一类斯特林数的指数型生成函数

\(\begin{aligned} \text{EGF} = & \frac{1}{m!}\cdot (\sum_{i=1}^{\infty}\frac{(-x)^i}{i})^m\\=& \frac{1}{m!}\cdot \ln^m(1+x)\end{aligned}\)

\[\ \]

\[\ \]

第二类斯特林数的一行可以直接由通项公式做卷积得到

\[\ \]

固定\(m\),以\(n\)为形式幂指数,则第二类斯特林数的指数型生成函数表示为

\(\begin{aligned} \text{EGF} &=\frac{1}{m!}({\sum_{i=1}^{\infty} \frac{x^i}{i!}})^m\\ &=\frac{1}{m!}(e^x-1)^m \\ &=\frac{1}{m!}\sum_{i=0}^m (-1)^{m-1} \binom{m}{i}e^{ix}\end{aligned}\)

实际上由这个二项展开的形式也可以发现,它就是上面通项公式的生成函数推导

可以求一列,复杂度为\(O(n\log n-n\log ^2n)\)常数很大

\[\ \]

虽然没什么意义,但是还是写一下二元形式

第一类斯特林数:

\(\begin{aligned} \text{EGF}=e^{-\ln (1-x)y}\end{aligned}\)

第二类斯特林数:

\(\begin{aligned}\text{EGF}=e^{\begin{aligned}(e^x-1)y\end{aligned}}\end{aligned}\)

注意元\(x\)为指数型,\(y\)是普通型

\[\ \]


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

第一类斯特林数:

上面已经说过\(\begin{aligned}x^{\overline{n}}=\sum_{i=0}^{n}\begin{bmatrix}n\\i\end{bmatrix}x^i\end{aligned}\)

同理,用有标号的第一类斯特林数将\(x^{\underline{n}}\)展开的式子是

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

\[\ \]

第二类斯特林数:

类似通项公式的求解,组合意义将幂指数展开,视\(x^n\)为将\(n\)个元素随意放在\(x\)个位置,则枚举\(x\)个位置中那些被选择

\(\begin{aligned} x^n=\sum_{i=0}^n \binom{x}{i}i!\begin{Bmatrix}n\\i\end{Bmatrix} \end{aligned}\)

\(\binom{x}{i}i!\)写成下降幂的形式,得到优美的式子

\(\begin{aligned} x^n=\sum_{i=0}^n \begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline{i}}\end{aligned}\)

\[\ \]

而实际上由上式二项反演也可以得到通项公式

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

关于下降幂多项式的快速转化,可以再借鉴这个

\[\ \]


斯特林变换/斯特林反演

对于斯特林变换

\(\begin{aligned} a_n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}b_i \end{aligned}\)

\(A(x),B(x)\)为数列\(a,b\)的指数型生成函数,带入前文推导的式子,则得到上式的生成函数表达就是

\(A(x)=B(e^x-1)\)

显然得到\(B(x)=A(\ln(x+1))\),而\(\ln(x+1)\)显然转化为有标号的第一类斯特林数

因此得到斯特林反演的表达形式是

\(\begin{aligned}b_n=\sum_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}a_i\end{aligned}\)

(不大可能搞类似多项式复合的方法处理这个反演吧,最多可能也就是求一个位置)

posted @ 2020-11-27 19:20  chasedeath  阅读(925)  评论(0编辑  收藏  举报