基本恒等式
递推关系
显然有
\[\begin{aligned}
\begin{bmatrix}n\\m\end{bmatrix}&=(n-1)\begin{bmatrix}n-1\\m\end{bmatrix}+\begin{bmatrix}n-1\\m-1\end{bmatrix},\\
\begin{Bmatrix}n\\m\end{Bmatrix}&=m\begin{Bmatrix}n-1\\m\end{Bmatrix}+\begin{Bmatrix}n-1\\m-1\end{Bmatrix}.
\end{aligned}
\]
对第一类斯特林数的行和有如下封闭形式:
\[n!=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix},
\]
组合意义显然。
幂转换公式
首先有
\[x^n=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline{k}}.
\]
\(\small \blacktriangledown\) 证明
对于 \(x\) 为正整数有一个组合学证明:将 \(n\) 个位置填入 \(1\) 至 \(x\) 中的整数有 \(x^n\) 个方案,其中我们将所有填入数相同的位置合并为一个集合,则一个方案对应一种子集划分与这种划分下为每个集合安排互不相同的 \(x\) 以内的数。对于一般情况我们须使用归纳法:
\[\begin{aligned}
x^n&=x\cdot x^{n-1}=x\sum_{k=0}^{n-1}{n-1\brace k}x^{\underline k}\\
&=\sum_{k=0}^{n-1}{n-1\brace k}\left(x^{\underline{k}}(x-k)+kx^{\underline k}\right)\\
&=\sum_{k=0}^{n-1}{n-1\brace k}x^{\underline{k+1}}+\sum_{k=0}^{n-1}k{n-1\brace k}x^{\underline k}\\
&=\sum_{k=0}^{n}{n-1\brace k-1}x^{\underline k}+\sum_{k=0}^{n-1}k{n-1\brace k}x^{\underline k}\\
&=\sum_{k=0}^{n}\left({n-1\brace k-1}+k{n-1\brace k}\right)x^{\underline k}=\sum_{k=0}^{n}{n\brace k}x^{\underline k}
\end{aligned}\]
类似地可归纳
\[(x+n-1)x^{\overline{n-1}}=(x+n-1)\sum_{k=0}^{n}{n-1\brack k}x^k=\sum_{k}{n\brack k}x^k.
\]
下面根据 \(x^{\underline{n}}=(-1)^n(-x)^{\overline{n}}\),我们有
\[\begin{aligned}
x^n&=\sum_{k=0}^n{n\brace k}(-1)^{n-k}x^{\overline{k}},\\
x^{\underline n}&=\sum_{k=0}^n{n\brack k}(-1)^{n-k}x^k.
\end{aligned}
\]
\(\small \blacktriangledown\) 证明
\[\begin{aligned}
(-x)^n&=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}(-x)^{\underline{k}},\\
(-1)^nx^n&=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}(-1)^kx^{\overline{k}}.\\
(-1)^{\overline{n}}=(-1)^nx^{\underline{n}}&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}(-x)^k=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}(-1)^kx^k.
\end{aligned}\]
斯特林反演
幂转换公式
\[\sum_{k}{n\brace k}{k\brack m}(-1)^{n-k}=\sum_{k}{n\brack k}{k\brace m}(-1)^{n-k}=[n=m].\]
\(\small \blacktriangledown\) 证明
对于第一个等式有
\[x^n=\sum_{k=0}^{n}{n\brace k}(-1)^{n-k}x^{\overline k}=\sum_{m}\left(\sum_{k}{n\brace k}{k\brack m}(-1)^{n-k}\right)x^m.
\]
第二个等式类似,略。
斯特林反演
该幂转换公式直接给出了斯特林反演。
\[\begin{aligned}
F(n)&=\sum_{k=0}^{n}\begin{Bmatrix}n\\k\end{Bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}F(k),\\
F(n)&=\sum_{k=0}^{n}\begin{bmatrix}n\\k\end{bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}F(k).
\end{aligned}
\]
总结
我们有如下斯特林数的基本恒等式:
\[\begin{aligned}
\begin{bmatrix}n\\m\end{bmatrix}&=(n-1)\begin{bmatrix}n-1\\m\end{bmatrix}+\begin{bmatrix}n-1\\m-1\end{bmatrix},\\
\begin{Bmatrix}n\\m\end{Bmatrix}&=m\begin{Bmatrix}n-1\\m\end{Bmatrix}+\begin{Bmatrix}n-1\\m-1\end{Bmatrix},\\
n!&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix},\\
x^n&=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline{k}}=\sum_{k=0}^n(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}x^{\overline{k}},\\
x^{\underline{n}}&=\sum_{k=0}^n(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}x^k,\quad x^{\overline{n}}=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}x^k,\\
\delta_{nm}&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}\begin{Bmatrix}k\\m\end{Bmatrix}(-1)^{n-k}=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}\begin{bmatrix}k\\m\end{bmatrix}(-1)^{n-k},\\
F(n)&=\sum_{k=0}^{n}\begin{Bmatrix}n\\k\end{Bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}F(k),\\
F(n)&=\sum_{k=0}^{n}\begin{bmatrix}n\\k\end{bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}F(k).
\end{aligned}
\]
附加恒等式
现在我们将补充两类斯特林数的一些其他恒等式。
通项
对于第二类斯特林数,我们有通项
\[m!\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{k=0}^m\binom{m}{k}k^n(-1)^{m-k}.
\]
联系幂转换公式,它与牛顿级数有相当的关联,见此通项的第二个证明。
\(\small \blacktriangledown\) 证明(二项式反演)
只需证
\[m^n=\sum_{k=0}^m\binom{m}{k}k!\begin{Bmatrix}n\\k\end{Bmatrix},
\]
这正是幂转换公式。
\(\small \blacktriangledown\) 证明(高阶差分,牛顿级数)
我们知道有牛顿级数
\[\begin{aligned}
x^n&=\sum_{k=0}^n\Delta^k(x^n)\big|_{x=0}\binom{x}{n}\\
&=\sum_{k=0}^n(\mathrm E-1)^k(x^n)\big|_{x=0}\binom{x}{n}\\
&=\sum_{k=0}^n\left(\sum_{i=0}^k\binom{k}{i}{\rm E}^k(-1)^{n-k}\right)(x^n)\big|_{x=0}\binom{x}{n}\\
&=\sum_{k=0}^n\sum_{i=0}^k\binom{k}{i}k^n(-1)^{n-k}\binom{x}{n}\\
&=\sum_{k=0}^n\left(\frac{1}{n!}\sum_{i=0}^k\binom{k}{i}k^n(-1)^{n-k}\right)x^{\underline{n}},
\end{aligned}\]
对比幂转换公式即得该通项。
对第一类斯特林数类似操作可得相应结论,此处略。
递推关系
两类斯特林数因其特别的组合意义,有多种不同的递推方式。
命题 \(\bf 1\)
\[\begin{aligned}
\begin{Bmatrix}n+1\\m+1\end{Bmatrix}&=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}k\\m\end{Bmatrix}=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}n-k\\m\end{Bmatrix},\\
\begin{Bmatrix}n\\m\end{Bmatrix}&=\sum_{k=m}^n(-1)^{n-k}\binom{n}{k}\begin{Bmatrix}k+1\\m+1\end{Bmatrix}.
\end{aligned}
\]
\(\small \blacktriangledown\) 证明(组合解释,二项式反演)
将第 \(n+1\) 个元素与之前 \(n\) 个元素中某 \(k\) 个分为新的一组,对 \(k\) 求和即得第一行;第二行则是前者的二项式反演。
命题 \(\bf 2\)
\[\begin{aligned}
\begin{bmatrix}n+1\\m+1\end{bmatrix}&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}\binom{k}{m},\\
\begin{bmatrix}n\\m\end{bmatrix}&=\sum_{k=m}^n(-1)^{m-k}\begin{bmatrix}n+1\\k+1\end{bmatrix}\binom{k}{m}.
\end{aligned}
\]
\(\blacktriangledown\) 证明
第一行即对于前 \(n\) 个数的 \(k\) 个轮换,保留其中 \(m\) 个轮换,将余下 \(m-k\) 个轮换顺次相连再接上数 \(n+1\) 以形成一个新的轮换。
其正确性可这么考虑:对于固定保留的 \(m\) 个轮换之外剩下一个轮换,将 \(k\) 始终固定于结尾,则此轮换内前面若干数的所有情况皆可被外层的 \(k\) 枚举到。
习见地,第二行乃是上一行的二项式反演。
以上是通过枚举最后一个元素所在子集/轮换,即枚举最大元最大的子集/轮换得到的。若我们改为枚举最小元最大的子集/轮换,则可以得到另一套不同的递推关系。
命题 \(\bf 3\)
\[\begin{Bmatrix}n+1\\m+1\end{Bmatrix}=\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}(m+1)^{n-k}.
\]
\(\blacktriangledown\) 证明(组合意义)
右式无非是枚举 \(k\),将前 \(k\) 个数划为 \(m\) 个集合,第 \(k+1\) 个数单独为一集合,然后将 \(n+1\) 个数中余下 \(n-k\) 个数任意归入这 \(m+1\) 个集合中。其实质是在枚举最小元最大的子集的最小元(即 \(k\))。
命题 \(\bf 4\)
\[\begin{Bmatrix}n+1\\m+1\end{Bmatrix}=\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}n^{\underline{n-k}}=n!\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}\frac{1}{k!}.
\]
\(\blacktriangledown\) 证明
承上,枚举所有轮换的最小元中的最大者 \(k\),在 \(\begin{Bmatrix}k\\m\end{Bmatrix}\) 的基础上令数 \(k+1\) 独成一轮换,余下的 \(n-k\) 个数中,数 \(k+2\) 有 \(k+1\) 种插入方式,\(k+3\) 有 \(k+2\) 种插入方式,以此类推,则对于一个 \(k\) 插入方式有 \(n……{\underline{n-k}}\) 种,是以求和后即得。
基于斯特林三角形,我们有类似二项式系数的平行求和法的一套恒等式,其推导无非是利用最基本的两个类似递推式将斯特林数逐次叠加到底。
命题 \(\bf 5\)
\[\begin{aligned}
\begin{Bmatrix}m+n+1\\m\end{Bmatrix}&=\sum_{k=0}^mk\begin{Bmatrix}n+k\\k\end{Bmatrix},\\
\begin{bmatrix}m+n+1\\m\end{bmatrix}&=\sum_{k=0}^m(n+k)\begin{bmatrix}n+k\\k\end{bmatrix},\\
\end{aligned}
\]
\(\blacktriangledown\) 代数学证明
对于第一行由于 \(\begin{Bmatrix}n\\k\end{Bmatrix}=k\begin{Bmatrix}n-1\\k\end{Bmatrix}+\begin{Bmatrix}n-1\\k-1\end{Bmatrix}\),右式为
\[\begin{aligned}
\begin{Bmatrix}n+1\\0\end{Bmatrix}&+\begin{Bmatrix}n+1\\1\end{Bmatrix}+\sum_{k=2}^mk\begin{Bmatrix}n+k\\k\end{Bmatrix}\\
&=\begin{Bmatrix}n+2\\1\end{Bmatrix}+2\begin{Bmatrix}n+2\\2\end{Bmatrix}+\sum_{k=3}^mk\begin{Bmatrix}n+k\\k\end{Bmatrix}\\
&=\cdots\\
&=\begin{Bmatrix}n+m\\m-1\end{Bmatrix}+m\begin{Bmatrix}n+m\\m\end{Bmatrix}=\begin{Bmatrix}n+m+1\\m\end{Bmatrix}.
\end{aligned}\]
第二行则大同小异,故略。
组合学证明
或许可以构造双射,没想出来。
反演转置
斯特林反演的转置
“斯特林反演”的本质是
\[\begin{aligned}
\boldsymbol I&=\begin{pmatrix}
\begin{Bmatrix}0\\0\end{Bmatrix}&\cdots&\begin{Bmatrix}n\\0\end{Bmatrix}\\
&\ddots&\vdots\\
&&\begin{Bmatrix}n\\n\end{Bmatrix}
\end{pmatrix}
\begin{pmatrix}
(-1)^{0}\begin{bmatrix}0\\0\end{bmatrix}&\cdots&(-1)^{n}\begin{bmatrix}n\\0\end{bmatrix}\\
&\ddots&\vdots\\
&&(-1)^{0}\begin{bmatrix}n\\n\end{bmatrix}
\end{pmatrix}\\
&=\begin{pmatrix}
\begin{bmatrix}0\\0\end{bmatrix}&\cdots&\begin{bmatrix}n\\0\end{bmatrix}\\
&\ddots&\vdots\\
&&\begin{bmatrix}n\\n\end{bmatrix}
\end{pmatrix}
\begin{pmatrix}
(-1)^{0}\begin{Bmatrix}0\\0\end{Bmatrix}&\cdots&(-1)^{n}\begin{Bmatrix}n\\0\end{Bmatrix}\\
&\ddots&\vdots\\
&&(-1)^{0}\begin{Bmatrix}n\\n\end{Bmatrix}
\end{pmatrix}.
\end{aligned}
\]
其转置自然亦成立,即
\[\begin{aligned}
\boldsymbol I&=\begin{pmatrix}
\begin{Bmatrix}0\\0\end{Bmatrix}\\
\vdots&\ddots&\\
\begin{Bmatrix}n\\0\end{Bmatrix}&\cdots&\begin{Bmatrix}n\\n\end{Bmatrix}
\end{pmatrix}
\begin{pmatrix}
(-1)^{0}\begin{bmatrix}0\\0\end{bmatrix}\\
\vdots&\ddots&\\
(-1)^{n}\begin{bmatrix}n\\0\end{bmatrix}&\cdots&(-1)^{0}\begin{bmatrix}n\\n\end{bmatrix}
\end{pmatrix}\\
&=\begin{pmatrix}
\begin{bmatrix}0\\0\end{bmatrix}\\
\vdots&\ddots&\\
\begin{bmatrix}n\\0\end{bmatrix}&\cdots&\begin{bmatrix}n\\n\end{bmatrix}
\end{pmatrix}
\begin{pmatrix}
(-1)^{0}\begin{Bmatrix}0\\0\end{Bmatrix}\\
\vdots&\ddots&\\
(-1)^{n}\begin{Bmatrix}n\\0\end{Bmatrix}&\cdots&(-1)^{0}\begin{Bmatrix}n\\n\end{Bmatrix}
\end{pmatrix},
\end{aligned}
\]
这就引出斯特林反演的“转置版本”
\[\begin{aligned}
F(m)&=\sum_{k=0}^{n}\begin{Bmatrix}k\\m\end{Bmatrix}G(k)\iff G(m)=\sum_{k=0}^n(-1)^{k-m}\begin{bmatrix}k\\m\end{bmatrix}F(k),\\
F(m)&=\sum_{k=0}^{n}\begin{bmatrix}k\\m\end{bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{k-m}\begin{Bmatrix}k\\m\end{Bmatrix}F(k).
\end{aligned}
\]
以上转置过程在对偶空间中亦有描述,从略。
一组恒等式
综合以上所述各项内容,我们可得到斯特林反演的一些卷积公式。
命题 \(\bf 6\)
\[\begin{aligned}
\binom{n}{m}&=\sum_{k=0}^n\begin{Bmatrix}n+1\\k+1\end{Bmatrix}\begin{bmatrix}k\\m\end{bmatrix}(-1)^{m-k},\\
n^{\underline{n-m}}&=\sum_{k=0}^n\begin{bmatrix}n+1\\k+1\end{bmatrix}\begin{Bmatrix}k\\m\end{Bmatrix}(-1)^{m-k}.
\end{aligned}
\]
\(\blacktriangledown\) 证明
分别对命题 \(3\) 和命题 \(4\) 做转置版本的斯特林反演。
卷积公式
命题 \(\bf 7\)
\[\begin{aligned}
\begin{Bmatrix}n\\l+m\end{Bmatrix}\binom{l+m}{l}&=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}k\\l\end{Bmatrix}\begin{Bmatrix}n-k\\m\end{Bmatrix},\\
\begin{bmatrix}n\\l+m\end{bmatrix}\binom{l+m}{l}&=\sum_{k=0}^n\binom{n}{k}\begin{bmatrix}k\\l\end{bmatrix}\begin{bmatrix}n-k\\m\end{bmatrix}.
\end{aligned}
\]
\(\blacktriangledown\) 证明
左端是将 \(n\) 个数分为 \(l+m\) 个子集/轮换,再将其分为两组的方案数;右端则是将 \(n\) 个数分为两组,并分别划分出 \(l\) 个与 \(m\) 个子集/轮换的方案数。二者显然相等。
未解决卷积恒等式
\[\begin{aligned}
\begin{Bmatrix}n\\n-m\end{Bmatrix}&=\sum_{k}\binom{m-n}{m+k}\binom{m+n}{m-k}\begin{bmatrix}m+k\\k\end{bmatrix},\\
\begin{bmatrix}n\\n-m\end{bmatrix}&=\sum_{k}\binom{m-n}{m+k}\binom{m+n}{m-k}\begin{Bmatrix}m+k\\k\end{Bmatrix}.
\end{aligned}
\]
总结
我们有如下附加恒等式:
\[\begin{aligned}
m!\begin{Bmatrix}n\\m\end{Bmatrix}&=\sum_{k=0}^m\binom{m}{k}k^n(-1)^{m-k},\\
\begin{Bmatrix}n+1\\m+1\end{Bmatrix}&=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}k\\m\end{Bmatrix}=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}n-k\\m\end{Bmatrix},\\
\begin{Bmatrix}n\\m\end{Bmatrix}&=\sum_{k=m}^n(-1)^{n-k}\binom{n}{k}\begin{Bmatrix}k+1\\m+1\end{Bmatrix},\\
\begin{bmatrix}n+1\\m+1\end{bmatrix}&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}\binom{k}{m},\\
\begin{bmatrix}n\\m\end{bmatrix}&=\sum_{k=m}^n(-1)^{m-k}\begin{bmatrix}n+1\\k+1\end{bmatrix}\binom{k}{m},\\
\begin{Bmatrix}n+1\\m+1\end{Bmatrix}&=\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}(m+1)^{n-k},\\
\begin{Bmatrix}n+1\\m+1\end{Bmatrix}&=\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}n^{\underline{n-k}}=n!\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}\frac{1}{k!},\\
\begin{Bmatrix}m+n+1\\m\end{Bmatrix}&=\sum_{k=0}^mk\begin{Bmatrix}n+k\\k\end{Bmatrix},\\
\begin{bmatrix}m+n+1\\m\end{bmatrix}&=\sum_{k=0}^m(n+k)\begin{bmatrix}n+k\\k\end{bmatrix},\\
F(m)&=\sum_{k=0}^{n}\begin{Bmatrix}k\\m\end{Bmatrix}G(k)\iff G(m)=\sum_{k=0}^n(-1)^{k-m}\begin{bmatrix}k\\m\end{bmatrix}F(k),\\
F(m)&=\sum_{k=0}^{n}\begin{bmatrix}k\\m\end{bmatrix}G(k)\iff G(n)=\sum_{k=0}^n(-1)^{k-m}\begin{Bmatrix}k\\m\end{Bmatrix}F(k),\\
\binom{n}{m}&=\sum_{k=0}^n\begin{Bmatrix}n+1\\k+1\end{Bmatrix}\begin{bmatrix}k\\m\end{bmatrix}(-1)^{m-k},\\
n^{\underline{n-m}}&=\sum_{k=0}^n\begin{bmatrix}n+1\\k+1\end{bmatrix}\begin{Bmatrix}k\\m\end{Bmatrix}(-1)^{m-k},\\
\begin{Bmatrix}n\\l+m\end{Bmatrix}\binom{l+m}{l}&=\sum_{k=0}^n\binom{n}{k}\begin{Bmatrix}k\\l\end{Bmatrix}\begin{Bmatrix}n-k\\m\end{Bmatrix},\\
\begin{bmatrix}n\\l+m\end{bmatrix}\binom{l+m}{l}&=\sum_{k=0}^n\binom{n}{k}\begin{bmatrix}k\\l\end{bmatrix}\begin{bmatrix}n-k\\m\end{bmatrix},\\
\begin{Bmatrix}n\\n-m\end{Bmatrix}&=\sum_{k}\binom{m-n}{m+k}\binom{m+n}{m-k}\begin{bmatrix}m+k\\k\end{bmatrix},\\
\begin{bmatrix}n\\n-m\end{bmatrix}&=\sum_{k}\binom{m-n}{m+k}\binom{m+n}{m-k}\begin{Bmatrix}m+k\\k\end{Bmatrix}.
\end{aligned}
\]
生成函数
下面将考虑两类斯特林数的生成函数。基本地,我们有
\[\begin{aligned}
(e^z-1)^m&=m!\sum_{n=0}^{\infty}\begin{Bmatrix}n\\m\end{Bmatrix}\frac{z^n}{n!},\\
(-\log(1-z))^m&=m!\sum_{n=0}^{\infty}\begin{bmatrix}n\\m\end{bmatrix}\frac{z^n}{n!},
\end{aligned}
\]
以及
\[\begin{aligned}
z^{\overline{m}}&=\sum_{n=0}^{\infty}\begin{bmatrix}m\\n\end{bmatrix}z^n,\\
\left(z^{-1}\right)^{\overline{-m}}&=\frac{z^m}{(1-z)(1-2z)\cdots(1-mz)}=\sum_{n=0}^{\infty}\begin{Bmatrix}m\\n\end{Bmatrix}z^n.
\end{aligned}
\]
由此可衍生出更多有关斯特林数的 GF 与 BGF(二元生成函数)。
首先,联系幂转换公式,即第一类斯特林数关于行的 OGF,我们可得如下结论。
命题 \(\bf 7\)
\[\frac{1}{(1-z)^t}=\sum_{n,m\geq 0}\begin{bmatrix}n\\m\end{bmatrix}t^m\frac{z^n}{n!}.
\]
\(\blacktriangledown\) 证明
\[\begin{aligned}
(1-z)^{-t}&=\sum_{n=0}^{\infty}\binom{t+n-1}{n}z^n\\
&=\sum_{n=0}^{\infty}\left(\prod_{i=0}^{n-1}(t+i)\right)\frac{z^n}{n!}=\sum_{n=0}^{\infty}t^{\overline{n}}\frac{z^n}{n!}\\
&=\sum_{n=0}^{\infty}\sum_{k=0}^{n}{n\brack k}t^k\frac{z^n}{n!}.
\end{aligned}\]
算法
斯特林数·列
根据二者的生成函数,可对于特定的 \(m\),在 \(\text O(n\log n)\) 的时间复杂度内求出 \(\begin{bmatrix}k\\m\end{bmatrix}\) 与 \(\begin{Bmatrix}k\\m\end{Bmatrix}\),\(\forall k\leq n\)。
code(第一类·列)
for(ll i=1;i<=n;i++)f[i]=inv[i];
Pow(f,g,n+1,m);
for(ll i=0;i<=n;i++)
printf("%lld ",g[i]*jc[i]%mod*jcinv[m]%mod);
code(第二类·列)
for(ll i=1;i<=n;i++)f[i]=jcinv[i];
Pow(f,g,n+1,m);
for(ll i=0;i<=n;i++)
printf("%lld ",g[i]*jc[i]%mod*jcinv[m]%mod);
例题
第二类行的和
对于给定的 \(n\) 和 \(\forall m\leq n\) 求出
\[\mathit{Bel}_m:=\sum_{k=0}^n\begin{Bmatrix}m\\k\end{Bmatrix}.
\]
其组合意义为“非空子集划分”,对应 \(\rm Bell\) 数。我们有将一个集合划分为一个非空集合的 EGF 为 \(e^z-1\),故其 EGF 是
\[\exp(e^z-1).
\]
可在 \(\text O(n\log n)\) 时间复杂度内求出。
第一类行的和
组合意义,\(\sum_{k=0}^n\begin{bmatrix}m\\k\end{bmatrix}=m!\)。
第一类行的部分和
对于给定的 \(r\) 和 \(n\leq N\) 求出
\[\sum_{k=0}^r\begin{bmatrix}n\\k\end{bmatrix}.
\]
我们知道
\[\begin{aligned}
\frac{1}{s!}(-\log(1-z))^s&=\sum_{n=0}^{\infty}\begin{bmatrix}n\\s\end{bmatrix}\frac{z^n}{n!},\\
\sum_{s=0}^r\frac{(-\log(1-z))^s}{s!}&=\sum_{n=0}^{\infty}\left(\sum_{k=0}^r\begin{bmatrix}n\\k\end{bmatrix}\right)\frac{z^n}{n!}.
\end{aligned}
\]
多项式复合即可解决。
第二类行的部分和
同上,求复合 \(\sum_{s=0}^r(e^z-1)/s!\) 即可。
第二类列的部分和
对于给定的 \(n\) 和 \(\forall m\leq n\) 求出
\[\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}.
\]
考虑将第二类斯特林数的通项代入,有
\[\begin{aligned}
\sum_{k=0}^n\begin{Bmatrix}k\\m\end{Bmatrix}&=\sum_{k=0}^n\frac{1}{m!}\sum_{i=0}^m\binom{m}{i}i^k(-1)^{m-i}\\
&=\sum_{i=0}^m\frac{1}{i!}\frac{(-1)^{m-i}}{(m-i)!}\sum_{k=0}^ni^k\\
&=\sum_{i=0}^m\frac{1-i^{n+1}}{i!(1-i)}\frac{(-1)^{m-i}}{(m-i)!},
\end{aligned}
\]
则一次卷积可在 \(\text O(n\log n)\) 时间内求出。
code($\text O(n\log n)$)
for(ll i=0,x=1;i<=n;i++,x=-x)
f[i]=(mod+1-Qpow(i,n+1))*Qpow(jc[i]*(mod+1-i)%mod,mod-2)%mod,
g[i]=(jcinv[i]*x+mod)%mod;
f[1]=n+1,Mul(f,g,h,n+1,n+1);
for(ll i=0;i<=n;i++)printf("%lld ",h[i]);
例题