部分经典反演的推导(附矩阵形式)
反演:已知有对向量 \(\vec{u}\) 的线性变换:\(A\vec{u}=\vec{v}\)。现在已知 \(\vec{v}\) 要反解 \(\vec{u}\) 的过程称为反演。
反演相当于做线性变换:\(A^{-1}\vec{v}=\vec{u}\),于是一般我们需要知道 \(A^{-1}\) 的形式。
部分转置问题:由于 \((A^T)^{-1}=(A^{-1})^T\),于是 \(A^T\vec{u}=\vec{v}\Leftrightarrow (A^{-1})^T\vec{v}=\vec{u}\)。
注:下文 \(A^{-1}_{i,j}\) 表示 \((A^{-1})_{i,j}\),\((A_{i,j})^{-1}\) 表示求逆。部分除法用 \(/\)。
写成数列形式:\(f_{i}=\sum\limits_{j} A_{i,j}g_j\Leftrightarrow g_{i}=\sum\limits_{j} A^{-1}_{i,j}f_j\)。
转置形式:\(f_{i}=\sum\limits_{j} A_{j,i}g_j\Leftrightarrow g_{i}=\sum\limits_{j} A^{-1}_{j,i}f_j\)。
或者你可以理解为下面要对一些特殊矩阵写出其求逆后的形式。
子集反演
用这个简单点的引入。下面集合符号均在二进制下考虑,线性变换矩阵:\(A_{i,j}=[j\subseteq i]\),其中 \(i,j\in [0,2^n)\)。
注意到这其实就是 or 卷积的 DFT 矩阵。反演矩阵 \(A^{-1}\) 就自然是 IDFT 矩阵了。
有 \(A^{-1}_{i,j}=(-1)^{|i|-|j|}[j\subseteq i]\),其中 \(|i|=\text{popcount(i)}\)。
写成数列形式应该更好理解:\(f_S=\sum\limits_{T\subseteq S} g_T\Leftrightarrow g_S=\sum\limits_{T\subseteq S} (-1)^{|S|-|T|}f_T\),就是一个简答的容斥。
转置形式:\(A_{i,j}=[i\subseteq j]\Leftrightarrow A^{-1}_{i,j}=(-1)^{|j|-|i}[i\subseteq j]\),\(f_S=\sum\limits_{S\subseteq T} g_T\Leftrightarrow g_S=\sum\limits_{S\subseteq T} (-1)^{|T|-|S|}f_T\)。
莫比乌斯反演
这个数列形式极其常见,先写:\(f_{n}=\sum\limits_{d\mid n} g(d)\Leftrightarrow g_{n}=\sum\limits_{d\mid n} \mu(n/d)f(d)\)。
太典啦,去 OI-wiki 自己学吧,懒得写啦。
矩阵形式:\(A_{i,j}=[j\mid i]\Leftrightarrow A^{-1}_{i,j}=\mu(i/j)[j\mid i]\)。转置形式略。
二项式反演
线性变换矩阵为 \(A_{i,j}=\dbinom{i}{j}\),即变换 \(g\to f\):\(f_n=\sum\limits_{i=0}^n \dbinom{n}{i}g_i\)。
直接亮结论:逆矩阵 \(A^{-1}_{i,j}=(-1)^{i-j}\dbinom{i}{j}\)。数列形式:\(f_n=\sum\limits_{i=0}^n \dbinom{n}{i}g_i\Leftrightarrow g_n=\sum\limits_{i=0}^n (-1)^{n-i}\dbinom{n}{i}f_i\)。转置形式略。
代数证法
\((A\times A^{-1})_{i,j}=\sum\limits_{k} \dbinom{i}{k}\dbinom{k}{j} (-1)^{k-j}=\sum\limits_{k=0}^{i-j} \dbinom{i}{k+j}\dbinom{k+j}{j} (-1)^{k}=\dbinom{i}{j}\sum\limits_{k=0}^{i-j} \dbinom{i-j}{k} (-1)^{k}=\begin{cases}1(i=j)\\0(i\neq j)\\ \end{cases}\)。
于是 \(A\times A^{-1}=I\)。
多项式证法
已知:\(f_n=\sum\limits_{i=0}^n \dbinom{n}{i}g_i\),写成 EGF 形式:\(\dfrac{f_n}{n!}=\sum\limits_{i=0}^n \dfrac{g_i}{i!}\times \dfrac{1}{(n-i)!}\)。
设出 EGF:令 \(f(x)=\sum\limits_{i=0}^n \dfrac{f_ix^i}{i!},g(x)=\sum\limits_{i=0}^n \dfrac{g_ix^i}{i!}\),则有 \(f(x)=g(x)\times \left(\sum\limits_{i\ge 0} \dfrac{x^i}{i!}\right)=e^x g(x)\)。
于是 \(g(x)=e^{-x}f(x)\Leftrightarrow g_n=\sum\limits_{i=0}^n (-1)^{n-i}\dbinom{n}{i}f_i\)。
斯特林反演
线性变换矩阵为 \(A_{i,j}=\displaystyle{i\brace j}\),即变换 \(g\to f\):\(f_n=\sum\limits_{i=0}^n \displaystyle{n\brace i}g_i\)。
直接亮结论:逆矩阵 \(A^{-1}_{i,j}=(-1)^{i-j}\displaystyle{i\brack j}\)。数列形式:\(f_n=\sum\limits_{i=0}^n \displaystyle{n\brace i}g_i\Leftrightarrow g_n=\sum\limits_{i=0}^n (-1)^{n-i}\displaystyle{n\brack i}f_i\)。
类似的,有:\(A_{i,j}=\displaystyle{i\brack j}\Leftrightarrow A^{-1}_{i,j}=(-1)^{i-j}\displaystyle{i\brace j}\),数列形式:\(f_n=\sum\limits_{i=0}^n \displaystyle{n\brack i}g_i\Leftrightarrow g_n=\sum\limits_{i=0}^n (-1)^{n-i}\displaystyle{n\brace i}f_i\)。
由于两者形式相似下文会证明第一种(有的是证明第一种转置形式)。
下面证明参考 dwt 博客,mol dwt。
多项式证法 \(1\)
首先要介绍几个经典的斯特林数恒等式。首先考虑组合意义,有:
\(\begin{aligned} x^n&=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline{k}}\ \\ x^{\overline{n}}&=\sum_{k=0}^n\begin{bmatrix}n\\k\end{bmatrix}x^k \end{aligned}\)
同时做代换:\(x^{\overline{n}}=(-1)^n x^{\underline{n}}\),有:
\(\begin{aligned} x^n&=\sum_k\begin{Bmatrix}n\\k\end{Bmatrix}(-1)^{n-k}x^{\overline{k}} \\ x^{\underline{n}}&=\sum_k\begin{bmatrix}n\\k\end{bmatrix}(-1)^{n-k}x^k \end{aligned}\)
考虑转置命题:已知 \(f_n=\sum\limits_{i\ge n} \displaystyle{i\brace n}g_i\),考虑下降幂多项式:\(f(x)=\sum\limits_{i=0}^n f_i x^{\underline{i}}\),有:
\(f(x)=\sum\limits_{i=0}^n \sum\limits_{j\ge i} \displaystyle{j\brace i}g_jx^{\underline{i}}=\sum\limits_{j=0}^n g_j\sum\limits_{i\le j} \displaystyle{j\brace i}x^{\underline{i}}=\sum\limits_{j=0}^n g_j x^j\)。
提取两边 \(x^n\) 系数,有:\(g_n=\sum\limits_{i\ge n} (-1)^{i-n}\displaystyle{i\brack n}f_i\)。就证明了转置形式。
多项式证法 \(2\)
考虑斯特林数 EGF,有:\(\displaystyle{n\brace m}=\dfrac{\left[\frac{x^n}{n!}\right](e^x-1)^m}{m!}\),\(\displaystyle{n\brack m}=\dfrac{\left[\frac{x^n}{n!}\right](-\ln(1-x))^m}{m!}\)。
已知 \(f_n=\sum\limits_{i=0}^n \displaystyle{n\brace i}g_i\),设 \(F,G\) 分别为 \(f,g\) 的 EGF,有:
\(\begin{aligned} F(x)&=\sum_k \frac{f_kx^k}{k!}=\sum_{k}\frac{x^k}{k!}\sum\limits_{i=0}^k \begin{Bmatrix}k\\i\end{Bmatrix}g_i=\sum_i g_i\sum_{k\ge i}\begin{Bmatrix}k\\i\end{Bmatrix}\frac{x^k}{k!} \\ &=\sum_{i=0}g_i\frac{(e^x-1)^i}{i!}=G(e^x-1) \end{aligned}\)
\(\begin{aligned} G(-x)&=F(\ln(1-x))=\sum\limits_{i\ge 0} \dfrac{f_i\ln(1-x)^i}{i!} \\ &=\sum\limits_{i\ge 0} \dfrac{(-1)^if_i(-\ln(1-x))^i}{i!}=\sum\limits_{i\ge 0} (-1)^if_i\sum\limits_{j\ge i}\dfrac{1}{j!}\begin{bmatrix}j\\i\end{bmatrix}x^j \\ &=\sum\limits_{j} \dfrac{x^j}{j!} \sum\limits_{i\le j} (-1)^if_i\begin{bmatrix}j\\i\end{bmatrix} \end{aligned}\)
提取两边 \(\left[\frac{x^n}{n!}\right]\) 系数,有:\((-1)^n g_n=\sum\limits_{i=0}^n (-1)^i\displaystyle{n\brack i}f_i\),把 \((-1)^n\) 移项即可。
代数证法
请拜读 dwt 博客,有空补,多项式证法好。