标签:理解 time play 角度 lin 不同的 数学 插入 符号
最近做题时发现斯特林数这一块不怎么成系统,于是从各路神仙的博客里学习了一下,因此也就有了这篇博客
主要学习了这位神仙的博客:第二类斯特林数总结
第二类斯特林数 \(\begin{Bmatrix}n\\i\end{Bmatrix}\) 代表将 \(n\) 个元素划分到 \(i\) 个集合里的方案数,也可以理解为将 \(n\) 个不同的小球放入 \(i\) 个相同的盒子里的方案数,递推公式为
\[
\begin{Bmatrix}n\\i\end{Bmatrix}=\begin{Bmatrix}n-1\\i-1\end{Bmatrix}+i\times \begin{Bmatrix}n-1\\i\end{Bmatrix}\tag{1.1}
\]
即讨论第 \(n\) 个元素是放进已有的 \(i\) 个盒子里还是放到一个新盒子里
直接递推求是 \(O(n^2)\) 的,但我们还有一个等式
\[
n^m=\sum\limits_{i=0}^{n}\begin{Bmatrix}m\\i\end{Bmatrix}i!\dbinom{n}{i}\tag{1.2}
\]
二项式反演一下得到
\[
\begin{Bmatrix}m\\n\end{Bmatrix}=\frac{1}{n!}\sum\limits_{i=0}^{n}(-1)^{n-i}\dbinom{n}{i}i^m\tag{1.3}
\]
然后就能 \(\text{FFT}\) 了
其实式 \((1.3)\) 也可以从容斥的角度思考,其中 \(\dbinom{n}{i}\) 是选择 \(i\) 个盒子必须为空的方案数,而又因为这些计算都是在盒子不同的基础上进行的,所以最后还要除以 \(n!\) 消去有序性
另外,对于式 \((1.2)\) ,我们也可以将其写成
\[
n^m=\sum\limits_{i=0}^{m}\begin{Bmatrix}m\\i\end{Bmatrix}n^{\underline{i}}\tag{1.4}
\]
我们将在下面看到这个等式的用途
第一类斯特林数分为有符号和无符号两种,设 \(s_s\) 表示有符号第一类斯特林数,\(s_u\) 为无符号第一类斯特林数,两者的关系为 \(s_s(n,m)=(-1)^{n+m}s_u(n,m)\)
在这里我们重点讨论无符号第一类斯特林数
无符号第一类斯特林数 \(\begin{bmatrix}n\\i\end{bmatrix}\) 的含义为将 \(n\) 个元素分到 \(i\) 个圆排列中的方案数,递推公式为
\[
\begin{bmatrix}n\\i\end{bmatrix}=\begin{bmatrix}n-1\\i-1\end{bmatrix}+(n-1)\times \begin{bmatrix}n-1\\i\end{bmatrix}\tag{2.1}
\]
即考虑在已有的 \(n-1\) 个元素中的一侧插入第 \(n\) 个元素扩大圆排列或单独把第 \(n\) 个元素作为一个圆排列
它有一些不错的性质
\[
\sum\limits_{i=0}^{n}\begin{bmatrix}n\\i\end{bmatrix}=n!\tag{2.2}
\]
以及
\[
\begin{bmatrix}n\\1\end{bmatrix}=(n-1)!\tag{2.3}
\]
对于式 \((2.2)\) ,左边的式子其实在枚举由 \(i\) 个循环组成的置换的个数,而 \(n\) 个元素的排列与置换一一对应,那么显然等式成立
对于式 \((2.3)\) ,我们考虑展开 \(\begin{bmatrix}n\\1\end{bmatrix}\):
\[
\begin{bmatrix}n\\1\end{bmatrix}=(n-1)\begin{bmatrix}n-1\\1\end{bmatrix}=(n-1)(n-2)\begin{bmatrix}n-2\\1\end{bmatrix}=...=(n-1)!\tag{2.4}
\]
其中展开出来的 \(\begin{bmatrix}n\\0\end{bmatrix}\) 因等于 \(0\) 而被舍弃
类似于式 \((1.4)\),第一类斯特林数也有类似的等式
\[
\sum\limits_{i=0}^{n}s_u(n,i)x^i=x^{\overline{n}}\tag{2.5}
\]
与
\[
\sum\limits_{i=0}^{n}s_s(n,i)x^i=x^{\underline{n}}\tag{2.6}
\]
根据 \(s_s\) 与 \(s_u\) 的关系,式 \((2.6)\) 也可以写为
\[
\sum\limits_{i=0}^{n}(-1)^{n-i}s_u(n,i)x^i=x^{\underline{n}}\tag{2.7}
\]
用数学归纳法证明式 \((2.7)\) :
\[
x^{\underline{n+1}}\\=x^{\underline{n}}\times (x-n)\\=(x-n)\sum\limits_{i=0}^{n}(-1)^{n-i}s_u(n,i)x^i\\=\sum\limits_{i=1}^{n+1}(-1)^{n+1-i}s_u(n,i-1)x^i+\sum\limits_{i=0}^{n}(-1)^{n+1-i}ns_u(n,i)x^i\\=s_u(n+1,n+1)x^{n+1}+\sum\limits_{i=0}^{n}(-1)^{n+1-i}(s_u(n,i-1)+ns_u(n,i))x^i\\=s_u(n+1,n+1)x^{n+1}+\sum\limits_{i=0}^{n}(-1)^{n+1-i}s_u(n+1,i)x^i\\=\sum\limits_{i=0}^{n+1}(-1)^{n+1-i}s_u(n+1,i)x^i
\]
那么对于式 \((2.5)\) 同理也可证明
从另一个角度来看,\(x^{\overline{n}}\) 和 \(x^{\underline{n}}\) 分别可看作无符号第一类斯特林数 \(s_u\) 与有符号第一类斯特林数的 \(s_s\) 的生成函数的封闭形式
斯特林反演说的是这样一件事情:有两个数列 \(\{f_n\}\) ,\(\{g_n\}\) ,那么若有
\[
f_n=\sum\limits_{i=0}^{n}\begin{Bmatrix}n\\i\end{Bmatrix}g_i\tag{3.1}
\]
就有
\[
g_n=\sum\limits_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}f_i\tag{3.2}
\]
有了上面的一些推导我们就不难证明其正确性了
由式 \((1.4)\) 与式 \((2.7)\) 可知,若令 \(f_i=x^i\),\(g_i=x^{\underline{i}}\) ,那么显然上面的关系成立,那么有
\[
F=A\times G,G=B\times F\tag{3.3}
\]
即
\[
F=A\times B\times F\tag{3.4}
\]
可以看出 \(A\times B=I\) ,即 \(A=B^{-1}\)
说明 \(a_{n,i}=\begin{Bmatrix}n\\i\end{Bmatrix}\) 构成的矩阵与 \(b_{n,i}=(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}\) 构成的矩阵互逆
那么对于任意的 \(f_n\) 与 \(g_n\) ,上述关系一定也还成立
而如果我们暴力将式 \((2.7)\) 代入式 \((1.4)\) 中,也可以得到同样的结论:
\[
n^m\\=\sum\limits_{i=0}^{m}\begin{Bmatrix}m\\i\end{Bmatrix}n^{\underline{i}}\\=\sum\limits_{i=0}^{m}\begin{Bmatrix}m\\i\end{Bmatrix}\sum\limits_{j=0}^{i}(-1)^{i-j}\begin{bmatrix}i\\j\end{bmatrix}n^j\\=\sum\limits_{i=0}^{m}n^i\sum\limits_{j=i}^{m}(-1)^{j-i}\begin{bmatrix}j\\i\end{bmatrix}\begin{Bmatrix}m\\j\end{Bmatrix}
\]
那么显然有
\[
[i==m]=\sum\limits_{j=i}^{m}(-1)^{j-i}\begin{bmatrix}j\\i\end{bmatrix}\begin{Bmatrix}m\\j\end{Bmatrix}\tag{3.5}
\]
即说明 \(a_{n,i}=\begin{Bmatrix}n\\i\end{Bmatrix}\) 构成的矩阵与 \(b_{n,i}=(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}\) 构成的矩阵互逆
当然第一类斯特林数也可以反演到第二类斯特林数,只不过可能要依据 \(i\) 与 \(m\) 的奇偶性改一改 \(-1\) 的指数
如果有写的不到位的地方我会再补充一点...
标签:理解 time play 角度 lin 不同的 数学 插入 符号
原文地址:https://www.cnblogs.com/ForwardFuture/p/11507412.html