反演
反演就是对于两个整数函数 \(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)\)