斯特林数相关

第二类斯特林数

定义 第二类斯特林数 \(S_2(n,k)\) 表示 \(\{1,2\dots n\}\) 划分成 \(k\) 个非空子集的方案数。

举个例子:

\(S=\{1,2,3,4\}\)\(k=3\)

其方案为:

\(\{1,2\}\cup\{3\}\cup\{4\},\{1,3\}\cup\{2\}\cup\{4\},\{1,4\}\cup\{2\}\cup\{3\}\\ \{1\}\cup\{2,3\}\cup\{4\},\{1\}\cup\{2,4\}\cup\{3\},\{1\}\cup\{3,4\}\cup\{2\}\)

共计 \(6\) 种。故 \(S_2(4,2)=6\)

第二类斯特林数的递推公式推导

现要求 \(S_2(n,k)\),考察第 \(n\) 个数的情况:

若第 \(n\) 个数单独成一个集合,那么有 \(S_2(n-1,k-1)\) 种情况,即剩下 \(n-1\) 个数分成 \(n-1\) 个集合,第 \(n\) 个数单独分开。

若第 \(n\) 个数和其他若干个数共同成一个集合,因为共有 \(k\) 个集合,第 \(n\) 个数有 \(k\) 中加入方式, 于是共计 \(k \times S_2(n-1,k)\) 种情况。

综上,可以得出第二类斯特林数的递推公式:

定理 \(1.1\) \(S_2(n,k)=S_2(n-1, k-1)+k\times S_2(n-1,k)\)

第一类斯特林数

定义 第一类斯特林数 \(S_1(n,k)\) 表示 \(n\) 个数形成 \(m\) 个轮换的方案数。

第一类斯特林数递推公式推导

现要求 \(S_1(n,k)\) ,考察第 \(n\) 个数的情况:

若第 \(n\) 个数单独成一个环,那么有 \(S_1(n-1, k-1)\) 种情况。

若第 \(n\) 个数与其他若干元素一起成一个环,那么 \(n\) 共计有 \(n-1\) 种加入方式。

综上,可以得出第一类斯特林数的递推公式:

定理 \(2.1\) \(S_1(n,k)=S_1(n-1,k-1)+(n-1)S_1(n - 1, k)\)

性质 \(2.2\)

  • 边界:\(S_1(0,0)=1\)\(S_1(n,0)=0\)

  • \(S_1(n,1)=(n-1)!\) :即圆排列的方案数。

  • \(\displaystyle S_1(n,n-1)=\frac{n(n-1)}{2}\)\(n\) 个数中选 \(2\) 个数的方案数。

  • \(\displaystyle n!=\sum_{i=0}^{n}{S_1(n,i)}\):排列和置换是一一对应的关系,置换具有的轮换数是任意的。

指数生成函数与斯特林数

以下用指数生成函数推导了第二类斯特林数的通项公式。

模板题:第二类斯特林数·行 - 洛谷

回顾一下第二类斯特林数的定义:\(S_2(n, k)\) 表示 \(n\) 个有标号球放入 \(k\) 个无标号盒子且无空盒的方案数。

考虑如下一个式子 \(\displaystyle G(x)=(\sum_{i=1}^{\infty}{\frac{x^i}{i!}})^k\)

那么 \(n![x^n]G(x)\) 表示了 \(n\) 个有标号球放入 \(k\) 个有标号盒子且无空盒的方案数。

于是 \(\displaystyle S_2(n, k)=\frac{n!}{k!}[x^n](G(x)\)

下面开始化简:

\[\begin{aligned} \displaystyle S_2(n, k)&=\frac{n!}{k!}[x^n](G(x)\\ &=\frac{n!}{k!}[x^n](e^x-1)^k\\ &=\frac{n!}{k!}[x^n]\sum_{i=0}^{k}{\binom{k}{i}e^{ix}(-1)^{k-i}}\\ &=\frac{n!}{k!}\sum_{i=0}^{k}{\binom{k}{i}\frac{i^n}{n!}(-1)^{k-i}}\\ \text{定理}{3.1}\text{:}~~S_2(n, k)&=\frac{1}{k!}\sum_{i=0}^{k}{\binom{k}{i}i^n(-1)^{k-i}} \end{aligned} \]

如上,便得到了第二类斯特林数的通项公式。

这允许我们在 \(O(n\log n)\) 的时间复杂度内计算第 \(n\) 行的斯特林数(\(NTT\))。

模板题 \(2\)第二类斯特林数·列 - 洛谷

这次是固定 \(k\) 了,就变成黑色了?。

返回去看我们推出的式子 \(\displaystyle S_2(n, k)=\frac{n!}{k!}[x^n](e^x-1)^k\)

\(F(x)\) 表示 \(S_2(n,k)\) 的生成函数。

那么 \(\displaystyle F(x)=\sum_{i=0}^{\infty}{S_2(i,k)\frac{x^i}{i!}}=\frac{(e^x-1)^k}{k!}\)

这样,多项式快速幂板子即可。

\(Bell\) 数:集合划分计数 - 洛谷

定义 \(Bell\)\(B_n\) 表示把 \(n\) 个有区别的小球放到若干个(任意多个)无区别盒子里的方案数。

即:把集合 \({1,2\dots n}\) 划分成若干个不相交非空子集的方案数。

不难发现:\(Bell\)\(B_n\) 就是第二类斯特林数的前缀和,\(\displaystyle B_n=\sum_{i=0}^{\infty}{S_2(n,i)}\)

话不多说,上指数生成函数就对了,设 \(B(x)\)\(\{B_n\}\) 的生成函数。

\[\begin{aligned} \displaystyle B_n&=\sum_{i=0}^{\infty}n![x^n]\frac{(e^x-1)^i}{i!}\\ &=n![x^n]\sum_{i=0}^{\infty}{\frac{e^x}{i!}}\\ &=n![x^n]e^{e^x-1} \end{aligned} \]

于是 \(\displaystyle B(x)=e^{e^x−1}\)

上升幂与下降幂

斯特林数的另外一种记法是:

  • 记第一类斯特林数为 \(\begin{bmatrix}n\\ m\end{bmatrix}\)

  • 第二类斯特林数为 \(\begin{Bmatrix}n\\ m\end{Bmatrix}\)

定理 \(4.1\) \(\displaystyle x^n=\sum_{k}{\begin{Bmatrix}n\\k\end{Bmatrix}}x^{\underline{k}}\)

证明:

用归纳法做个简单的证明。

已知该式在 \(n-1\) 时成立,根据 \(x\cdot x^{\underline{k}}=x^{\underline{k+1}}+kx^{\underline{k}}\)
从而

\[\begin{aligned} \displaystyle x^n=x\cdot x^{n-1}&=x\cdot \sum_{k}{\begin{Bmatrix}n-1\\k\end{Bmatrix}x^{\underline{k}}}\\ &=\sum_{k}{\begin{Bmatrix}n-1\\k\end{Bmatrix}x^{\underline{k+1}}} + \sum_{k}{k\cdot \begin{Bmatrix}n-1\\k\end{Bmatrix}x^{\underline{k}}}\\ &=\sum_{k}{\begin{Bmatrix}n-1\\k-1\end{Bmatrix}}x^{\underline{k}} + \sum_{k}{k\cdot\begin{Bmatrix}n-1\\k\end{Bmatrix}}x^{\underline{k}}\\ &=\sum_{k}{\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline{k}}} \end{aligned} \]

定理 \(4.2\)\(\displaystyle x^{\overline{n}}=\sum_{k}{\begin{bmatrix}n\\k\end{bmatrix}x^k}\)

仍然归纳法,类似于定理 \(4.1\) 的证明,利用恒等式 \((x+n-1)\cdot x^{k}=x^{k+1}+(n-1)x^k\)\(x^{\overline{n}}=(x+n-1)\cdot x^{\overline{n-1}}\)

即可得出结论。

总结一下:

  • 通常幂转下降幂的系数是第二类斯特林数。

  • 上升幂转通常幂的系数是第一类斯特林数。

思考上升幂,下降幂,通常幂之间更多的联系。

推论 \(4.3\)

  1. \(\displaystyle x^{\underline{n}}=\sum_{k}{(-1)^{n-k}\begin{bmatrix}n\\ k\end{bmatrix}x^k}\)

  2. \(\displaystyle x^n=\sum_{k}{(-1)^{n-k}\begin{Bmatrix}n\\ k\end{Bmatrix}x^{\overline{k}}}\)

上述等式成立是因为 \(x^{\underline{n}}\)\(x^{\overline{n}}\) 的系数仅正负号不相同,配上容斥系数 \((-1)^{n-k}\) 即可得到上述等式。

更具体的,\(x^{\underline{n}}=(-1)^{n}(-x)^{\overline{n}}\)

CF1278F Cards 加强版

比较模板的题。

定理 \(4.4\)

  1. \(\displaystyle \sum_{k}{(-1)^{n-k}\begin{Bmatrix}n\\ k\end{Bmatrix}\begin{bmatrix}k\\m\end{bmatrix}}=[n=m]\)

  2. \(\displaystyle \sum_{k}{(-1)^{n-k}}\begin{bmatrix}n\\ k\end{bmatrix}\begin{Bmatrix}k\\m\end{Bmatrix}=[n=m]\)

证明 \(1\)

将定理 \(4.2\) 代入 \(4.3.2\) 可得 \(\displaystyle x^n=\sum_{k,m}{(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}\begin{bmatrix}k\\ m\end{bmatrix}x^m}\)

容易知道,仅在 \(m=n\) 时其系数为 \(1\) ,否则其系数为 \(0\)

证明 \(2\)

同理,将定理 \(4.1\) 代入 \(4.3.1\) 即可。

斯特林反演

定理 \(5.1\) \(\displaystyle f(n)=\sum_{k=0}^{n}{\begin{bmatrix}n\\k\end{bmatrix}}g(n)\Leftrightarrow g(n)=\sum_{k=0}^{n}{(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}f(n)}\)

证明:

与定理 \(4.4\) 有密切联系。

\[\begin{aligned} \displaystyle g(n)&=\sum_{m=0}^{n}{[m=n]g(m)}\\ &=\sum_{m=0}^{n}{\sum_{k=m}^{n}(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}\begin{bmatrix}k\\m\end{bmatrix}g(m)}\\ &=\sum_{k=0}^{n}{(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}\sum_{m=0}^{k}{\begin{bmatrix}k\\m\end{bmatrix}g(m)}}\\ &=\sum_{k=0}^{n}{(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}f(k)} \end{aligned} \]

定理 \(5.2\) \(\displaystyle f(n)=\sum_{k=0}^{n}{\begin{Bmatrix}n\\k\end{Bmatrix}}g(n)\Leftrightarrow g(n)=\sum_{k=0}^{n}{(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}f(n)}\)

证明类似于定理 \(5.1\)

posted @ 2022-07-29 17:32  mklzc  阅读(98)  评论(0编辑  收藏  举报