反演

反演就是对于两个整数函数 \(f\)\(g\),从用 \(g\) 表示 \(f\) 转化为用 \(f\) 表示 \(g\)

简而言之,\(f(n)\)\(g(0),g(1),\cdots,g(n)\) 的一个线性组合,那么很明显,有 \(f(n)=\sum_{i=0}^na_{n,i}g(i)\)

如果把 \(g(i),f(i)\) 用向量 \(G,F\) 表示,那么 \(F=\{a_{i,j}\}*G\)

而反演的实质就是想要找到一个下三角矩阵 \(B=\{b_{i,j}\}\) 满足 \(G=\{b_{i,j}\}*F\),也就是 \(g(n)=\sum_{i=0}^nb_{n,i}f(i)\)

\(A=\{a_{i,j}\}\),那么有 \(F=AG,G=BF\),提一下,\(F=A(BF)\)\(F=(AB)F\),所以 \(AB=E\),所以 \(B=A^{-1}\)

或者说,\(\sum_{k}a_{i,k}b_{k,j}=[i=j]\)

所以实际上我们就是要找到 \(A\) 的逆矩阵。

求取这个逆矩阵其实很简单,我们只需要在想要的 \(a_{i,j}\) 下,把特殊的 \(f(n)\)\(g(n)\) 带入进去,得到 \(b_{i,j}\) 就可以得到对普适的 \(f(n),g(n)\) 的结论。

二项式反演

例如,二项式反演,\(f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\),那么我们令 \(g(i)=(x-1)^i\),那么根据二项式定理,\(f(n)=x^n\),接下来,\((x-1)^n=\sum_{i=0}^n b_{n,i}x^i\),很明显,因为 \((x-1)^n=\sum_{i=0}^n (-1)^{n-i}\binom{n}{i}x^i\),所以 \(b_{n,i}=(-1)^{n-i}\binom{n}{i}\)

我们就得到了 \(g(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}f(i)\)

其他形式

我们尝试从各个方面修改二项式反演的形式。

首先,增加下界,\(f(n)=\sum_{i=m}^n\binom {n}{i}g(i)\)。这个形式下,我们发现我们其实就是把 \(a_{i,j}(j\lt m)\) 全部设为 \(0\)。这个矩阵很明显是没有逆矩阵的,怎么办呢?

我们意识到在没有前 \(m\) 列(对于上三角形方阵而言,同样没有前 \(m\) 行)的群中,去点前 \(m\) 列的单位矩阵同样也满足群幺元的性质。而我们的 \(f\)\(g\) 恰好也都是去掉前 \(m\) 行的,只用 \(m\) 以后的列的单位阵 \(E'\) 相乘依旧等于自身。

所以,我们需要的就是 \(A'\) 在去掉前 \(m\) 列的下三角方阵群上的逆元,对于 \(B'\) 矩阵,同样满足 \(A'B'=E'\)

我们设 \(A\) 的前 \(i\) 行单独提取出来的矩阵是 \(A''\),同理 \(B\)\(B''\)\(E\)\(E''\)。然后有 \(A'=A-A'',B'=B-B'',E=E-E''\)

\(A'B'=E'\)
\((A-A'')(B-B'')=E-E''\)
\(AB-A''B-AB''+A''B''=E-E''\)
\(A''B''-A''B-AB''=E''\)

因为 \(A''\)\(B''\) 是只有前 \(m\) 行的。而乘积的前 \(m\) 行是不受影响的,依旧是单位阵 \(E''\),至于后面的列(行),只要因子里面某一个矩阵啥也没有,就是啥也没有的 \(0\),所以最后 \(A''B'',A''B,AB''\) 都是 \(E''\),发现最后一个式子成立,那么往回带就得到第一个式子成立。

然后我们就知道在去掉前 \(m\) 行的情况下,\(A\) 的逆元就是 \(A^{-1}\) 去掉前 \(i\) 行。
所以 \(g(n)=\sum_{i=m}^n(-1)^{n-i}\binom{n}{i}f(i)\)

其次,重新转写,\(f(n)=\sum_{i=n}^m\binom{i}{n}g(i)\)

我们很容易的发现,其实 \(A_{n,i}=\binom{i}{n}\),对应着当前的矩阵是原来的矩阵的转置。那么就非常容易了。因为 \(A^T\) 的逆是 \(A\) 的逆的转置。所以我们要的 \(B\) 就是 \(B^T\),也就得到 \(g(n)=\sum_{i=n}^m(-1)^{i-n}\binom {i}{n}f(i)\)

莫比乌斯反演

首先我们有狄利克雷卷积,然后 \(\mu*I\) 按照定义就是 \(\delta\),数论函数部分就直接略过了。

然后莫比乌斯反演的第一种形式是从 \(\mu\)\(I\) 的逆元推出来的,\(f=I*g\),所以两遍同乘 \(\mu\)\(\mu*f=mu*I*g=g\)

我们需要用反演来推的是莫比乌斯反演的第二种形式,\(f(n)=\sum_{n|d}g(d)\)

我们先把第一种形式写成矩阵的形式,\(f(n)=\sum_{d|n}g(d)\)

其实也就是 \(a_{n,i}=[i|n]\)

然后我们很快发现,这个第二种形式的 \(a_{n,i}=[n|i]\),显然就是第一种的矩阵的转置。所以我们直接把 \(b_{n,i}=\mu(\dfrac{n}{i})[i|n]\) 转置一下就得到了。

\(g(n)=\sum_{n|d}\mu(\dfrac{d}{n})f(d)\)

posted @ 2023-04-25 20:34  jucason_xu  阅读(32)  评论(0编辑  收藏  举报