「笔记」反演
学到了
反演本质
给定数列 \(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 查错!
水炊老师太神了吧 /fad
推一本合同本,内含老师早期作品: 《幽梦》。
作者@Luckyblock,转载请声明出处。