「笔记」反演

学到了


反演本质

给定数列 \(f_i, g_i\),存在:

\[g_n = \sum_{i=0}^{n}a_{n,i}f_i \]

这里使用 \(f\) 推出了 \(g\),反演的过程就是使用 \(g\) 推出 \(f\)
也就是找到系数数组 \(b\),使得:

\[f_n=\sum_{i=0}^{n}b_{n,i}g_i \]

引用自学长课件。

个人理解:

已知存在一 \(n\times n\) 的矩阵,满足如下关系:

\[\begin{bmatrix}f_0&f_1&\cdots&f_n\end{bmatrix} = \begin{bmatrix}g_0&g_1&\cdots&g_n\end{bmatrix}\times A \]

反演就是要找到矩阵 \(B\),满足:

\[\begin{bmatrix}g_0&g_1&\cdots&g_n\end{bmatrix} = \begin{bmatrix}f_0&f_1&\cdots&f_n\end{bmatrix}\times B \]


反演条件

整合两个式子,有:

\[\begin{aligned} f_n =& \sum_{i=0}^{n}b_{n,i}g_i\\ =&\sum_{i=0}^{n}b_{n,i}\sum_{j=0}^{i}a_{i,j}f_j\\ \end{aligned}\]

展开后为 \(\sum {b_{n,i}a_{i,j}f_{j}}\) 的形式。
考虑每一个 \(f_j\) 在何时做出贡献,来提出 \(f\)

观察原式,显然对于一个确定的 \(j\)\(i\ge j\)
\(f_j\) 会在 \(i\ge j\) 时做出贡献。

则对于上式,调换枚举顺序,有:

\[\begin{aligned} f_n =&\sum_{i=0}^{n}b_{n,i}\sum_{j=0}^{i}a_{i,j}f_j\\ =& \sum_{i=0}^{n}f_i\sum_{j=i}^{n}b_{n,j}a_{j,i} \end{aligned}\]

若上式成立,考虑右侧 \(f_i\) 的系数,则有:

\[\sum_{j=i}^{n}b_{n,j}a_{j,i}=\begin{cases}1 &i=n\\0 &i\not ={n}&\end{cases} \]

即:

\[\sum_{j=i}^{n}b_{n,j}a_{j,i}=\left[i=n\right] \]

同理,有:

\[g_n = \sum_{i=0}^{n}g_i\sum_{j=i}^{n}a_{n,j}b_{j,i} \]

满足:

\[\sum_{j=i}^{n}a_{n,j}b_{j,i}=\left[i=n\right] \]

综上,能够反演的前提条件为:

\[\begin{cases} \sum\limits_{j=i}^{n}b_{n,j}a_{j,i}=\left[i=n\right]\\ \sum\limits_{j=i}^{n}a_{n,j}b_{j,i}=\left[i=n\right] \end{cases}\]


莫比乌斯反演

\[f(n) = \sum\limits_{d\mid n}{g(d)}\iff g(n) = \sum\limits_{d\mid n} {\mu(d)f(\dfrac{n}{d})} \]

详解见 莫比乌斯反演


斯特林反演

\[f(n) = \sum_{k=0}^{n}\begin{Bmatrix}n\\k\end{Bmatrix}g(k) \iff g(n) = \sum_{k=0}^{n}(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}f(k) \]

详解见 斯特林数 及 斯特林反演


二项式反演


写在最后

感谢 Loceaner 查错! /qq

水炊老师太神了吧 /fad
推一本合同本,内含老师早期作品: 《幽梦》

posted @ 2020-08-03 11:30  Luckyblock  阅读(299)  评论(2编辑  收藏  举报