Loading

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

反演:已知有对向量 \(\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 反演博客

posted @ 2024-06-06 22:36  HaHeHyt  阅读(38)  评论(0编辑  收藏  举报