斯特林数行和列

第二类斯特林数·行

有性质:

\[m^n=\sum_{i=0}^{m} \dbinom{m}{i}{n\brace i}i! \]

可以无脑二项式反演:

\[\begin{aligned} &f(m) = m^n,g(m)={n\brace m}m! \\ &f(m)=\sum_{i=0}^m \dbinom{m}{i}g(i) \\ &g(m)=\sum_{i=0}^m (-1)^{m-i}\dbinom{m}{i}f(i) \end{aligned} \]

还原得:

\[\begin{aligned} {n\brace m}m! &=\sum_{i=0}^m (-1)^{m-i}\dbinom{m}{i}i^n \\ {n\brace m} &=\sum_{i=0}^m \frac{(-1)^{m-i}\dbinom{m}{i}i^n}{m!} \\ {n\brace m} &=\sum_{i=0}^m \frac{(-1)^{m-i}i^n}{i!(m-i)!} \\ {n\brace m} &=\sum_{i=0}^m \frac{i^n}{i!}\frac{(-1)^{m-i}}{(m-i)!} \end{aligned} \]

这是个卷积,设:

\[A_i=\frac{i^n}{i!},B_i=\frac{(-1)^i}{i!} \]

那么有:

\[{n\brace m}=\sum_{i=0}^m A_iB_{m-i} \]

第二类斯特林数·列

相同的限制很难受,发现可以改成不同,最后答案除以 \(k!\) 就行。

设单个非空集合的 \(\text{EGF}\) 为:

\[G(x)=e^x-1 \]

\(k\) 个非空集合的 \(\text{EGF}\) 就是:

\[F(x)=(e^x-1)^k \]

直接快速幂一波,最后答案记得乘上 \(i!\),除掉 \(k!\)。但是,\([x^0]G(x)\) 不一定是 \(1\),所以要升级版的多项式快速幂。

第一类斯特林数·行

\(n\) 行第一类斯特林数的 \(\text{OGF}\) 为:

\[F(x)=x^{\overline{n}}=\sum_{i=0}^n {n\brack i} x^i \]

所以实际上就是要求出 \(x^{\overline{n}}\) 的多项式。考虑倍增:

\[x^{\overline{2n}}=x^{\overline{n}}(x+n)^{\overline{n}} \]

所以求出平移后的多项式后乘在一起就好,设 \(f_i=[x^i]F(x)\)

\[\begin{aligned} F(x+n)=(x+n)^{\overline{n}} &= \sum_{i=0}^n f_i (x+n)^i \\ &= \sum_{i=0}^n \sum_{j=0}^i f_i \dbinom{i}{j} x^j n^{i-j} \\ &= \sum_{j=0}^n \frac{x^j}{j!} \sum_{i=j}^n f_i i! \frac{n^{i-j}}{(i-j)!} \end{aligned} \]

发现后面是个卷积,设:

\[\begin{aligned} A(x) &= \sum_{i=0}^n f_{n-i}(n-i)!x^i \\ B(x) &=\sum_{i=0}^n \frac{n^i}{i!}x^i \end{aligned} \]

卷起来就好。

\(n\) 为奇数时,算 \(n-1\),最后暴力乘上 \(x+n-1\)

第一类斯特林数·列

和第二类斯特林数·列思路比较相似。

圆是无序计数很难受,我们先可以转换成有序来做,最后除以 \(k!\)

考虑一个圆排列的 \(\text{EGF}\)

\[\begin{aligned} G(x) &= \sum_{i=0}^{\infty} \frac{(i-1)! x^i}{i!} \\ &= \sum_{i=0}^{\infty} \frac{x^i}{i} \\ &= - \ln(1-x) \\ &= \ln \frac{1}{1-x} \end{aligned} \]

\(k\) 个圆排列的 \(\text{EGF}\) 就为:

\[\begin{aligned} F(x) &= G^k(x) \\ &= (\ln \frac{1}{1-x})^k \end{aligned} \]

注意 \([x^0]G(x)\)\(0\),要用升级版多项式快速幂。最后答案要记得乘上 \(i!\),除掉 \(k!\)

(不用求 \(\ln\),只是写成封闭形式更好看

posted @ 2022-09-17 10:27  violetctl39  阅读(42)  评论(0编辑  收藏  举报