部分经典反演的推导(附矩阵形式)

部分经典反演的推导(附矩阵形式)

反演:已知有对向量 \(\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 博客,有空补,多项式证法好。

练习

由于本人没有系统总结过,于是请参考 cmd 博客,也附一下 dwt 反演博客。

相关内容

世界杯历史上最佳阵容一览表
365BET官网

世界杯历史上最佳阵容一览表

08-31 ☯ 1785
世界十大最贵的手表榜中榜
asiasports365

世界十大最贵的手表榜中榜

08-21 ☯ 8490
逆水寒手游新赛季什么时候开启 新赛季开启时间一览