斯特林数

第一类斯特林数

\(S_1(n,k)\) 表示将 \(n\) 个元素构成 \(k\) 个环排列的方案数。根据定义递推: \(S_1(n,k)=S_1(n-1,k-1)+(n-1)S_1(n-1,k)\)

我们有:

\[x^{\overline{n}}=\sum_{k=0}^n S_1(n, k)x^k \]

考虑归纳证明:

\[x^{\overline{n+1}}=(x+n)x^{\overline{n}}=x\cdot x^{\overline{n}}+ nx^{\overline{n}} \]

\[=\sum_{k=0}^n S_1(n,k)x^{k+1} + n \sum_{k=0}^n S_1(n,k) x^k \]

\[=\sum_{k=0}^{n+1} (S_1(n,k)+nS_1(n,k+1)) x^k \]

\[=\sum_{k=0}^{n+1} S_1(n+1,k)x^k \]

通过这个式子我们可以倍增 \(\Theta(n\log n)\) 的复杂度内求解一行。具体的,\(x^{\overline{2n}}=x^{\overline{n}}\times (x+n)^{\overline{n}}\),多项式点值的平移可以自己推式子算,会发现是个减法卷积的形式。

普通幂级转下降幂:

\[x^{\underline{n}}=\sum_{k=0}^n S_1(n,k)(-1)^{n-k}x^k \]

证明和上面的证明类似,考虑归纳法,只是下降幂把常系数都取反了,所以多了\((-1)^{n-k}\)

第二类斯特林数

\(S_2(n,k)\) 表示把 \(n\) 个不同的元素划分到 \(m\) 个相同的集合的方案数。根据定义有递推式:\(S_2(n,k)=S_2(n-1,k-1)+kS_2(n-1,k)\)

考虑有性质:

\[x^n=\sum_{k=0}^n S_2(n,k)x^{\underline{k}} \]

仍考虑归纳,\(x^n=x\cdot x^{n-1}\):

\[x^n = x\cdot x^{n-1}=x\sum_{k=0}^{n-1}S_2(n,k)x^{\underline{k}} \]

有:\(x\cdot x^{\underline{k}}=x^{\underline{k+1}}+kx^{\underline{k}}\),所以

\[=\sum_{k=0}^{n-1}S_2(n,k)(x^{\underline{k+1}}+kx^{\underline{k}}) \]

把相同的 \(x^k\) 系数并到一起,就有:

\[=\sum_{k=0}^{n}(S_2(n-1,k-1)+kS_2(n-1,k))x^{\underline{k}} \]

\[=\sum_{k=0}^{n}S_2(n,k)x^{\underline{k}} \]

类似的,我们有:

\[x^n = \sum_{k=0}^n S_2(n,k)(-1)^{n-k}x^{\underline{k}} \]

求解第二类斯特林数,考虑这样一个式子:

\[m!S_2(n,m)=\sum_{k=0}^m \binom{m}{k} (-1)^{m-k}k^n \]

证明可以归纳,容易发现这是个卷积,可以直接求。

还有一些优美的恒等式:

\[n!=\sum_{i=0}^n S_1(n,i) \]

\[\sum_{k=1}^nS_1(n,k)S_2(k,m)(-1)^{n-k}=\sum_{k=1}^n S_2(n,k)S_1(k,m)(-1)^{n-k}=[m=n] \]

考虑应用:

[清华集训2016] 如何优雅地求和

有一个多项式函数 \(f(x)\),最高次幂为 \(x^m\),定义变换 \(Q\)

\[Q(f,n,x)=∑_{k=0}^{n}f(k)\binom nkx^k(1−x)^{n−k} \]

现在给定函数 \(f\)\(n,x\),求 \(Q(f,n,x)\bmod998244353\)

出于某种原因,函数 \(f\) 由点值形式给出,即给定 \(a_0,a_1,⋯,a_m\)\(m+1\) 个数,\(f(x)=a_x\)。可以证明该函数唯一。

对于所有的测试点,保证 \(1≤n≤10^9\)\(1≤m≤2×10^4\)\(0≤a_i,x<998,244,353\)

考虑对于 \(f(x)\) 的每个系数 \(f_i\) 求贡献

\[\sum_{k=0}^n f_i k^i \binom{n}{k}x^k (1-x)^{n-k} \]

考虑用下降幂替代 \(k^i\)

\[=f_i\sum_{k=0}^n \sum_{d=0}^i S_2(i,d)k^{\underline{d}} \binom{n}{k}x^k(1-x)^{n-k} \]

\[=f_i \sum_{d=0}^i S_2(i,d)\sum_{k=0}^n \binom{n}{k}x^k (1-x)^{n-k} k^{\underline{d}} \]

\[=f_i x^n \sum_{d=0}^i S_2(i,d)n^{\underline{d}} \sum_{k=0}^n \binom{n-d}{n-k}({1-x\over x})^{n-k} \]

\[=f_i\sum_{d=0}^i S_2(i,d)n^{\underline{d}}x^d \]

考虑后面那一坨,\(n^{\underline{d}}x^d\)最后对答案贡献的系数设为 \(b_i=\sum_{i=j}^m f_iS_2(i,j)\),考虑 \(a_x=\sum_{i=0}^m f_i x^i\),展开 \(x^i\)

\[\sum_{i=0}^m f_ix^i = \sum_{i=0}^m f_i \sum_{j=0}^i S_2(i,j)x^{\underline{j}} \]

\[=\sum_{i=0}^m x^{\underline{i}}\sum_{j=i}^m f_i S_2(i,j)=\sum_{i=0}^m x^{\underline{i}}b_i \]

\[=x!\sum_{i=0}^m {b_i \over (x-i)!}=a_x \]

考虑把 \(a,b\) 看成形式幂级数,则 \(e^x B(x)=\text{EGF} \{a\}\) ,多项式乘法即可。

posted @ 2022-08-26 11:45  Smallbasic  阅读(42)  评论(0)    收藏  举报