参考:生成函数与反演by NaCly_Fish
vfleaking的博客
写在前面
主要通过以下方式证明/推导:
代入计算实在懒得算了,只是提一下。
关于矩阵理解
首先可以发现反演的一组式子都形如:
\[\begin{aligned}
f_x=\sum\limits_{y} a_{x,y} g_y\\
g_x=\sum\limits_{y} b_{x,y} f_y
\end{aligned}
\]
然后写成矩阵形式,令:
\[\begin{aligned}
\mathbf{A}&=\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{n1} & a_{n2} & \cdots & a_{nn}
\end{pmatrix}\\
\\
\mathbf{B}&=\begin{pmatrix}
b_{11} & b_{12} & \cdots & b_{1n}\\
b_{21} & b_{22} & \cdots & b_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
b_{n1} & b_{n2} & \cdots & b_{nn}
\end{pmatrix}\\
\\
\bm{f}&=\begin{pmatrix}
f_1\\
f_2\\
\vdots \\
f_n
\end{pmatrix}\\
\\
\bm{g}&=\begin{pmatrix}
g_1\\
g_2\\
\vdots \\
g_n
\end{pmatrix}
\end{aligned}
\]
则有:
\[\begin{aligned}
\bm{f}&=\mathbf{A}\bm{g}\\
\bm{g}&=\mathbf{B}\bm{f}
\end{aligned}
\]
将下式代入上式,可得\(\mathbf{A}\mathbf{B}=\mathbf{I}\)
如果下标不从\(1\)开始,那么就是\(\mathbf{A},\mathbf{B}\)中前几行几列变成\(0\),相乘后剩下的部分为一个单位矩阵,为\(0\)的部分还是为\(0\)。
于是反演实质上就是矩阵求逆。
关于GF理解
其实就是通过第一个式子列出GF的关系式,然后像解方程一样反解一下,再展开提取系数。
二项式反演
第一组:
\[\begin{aligned}
f_n&=\sum\limits_{i=m}^n\dbinom{n}{i}g_i\\
g_n&=\sum\limits_{i=m}^n\dbinom{n}{i}(-1)^{n-i}f_i
\end{aligned}
\]
第二组:
\[\begin{aligned}
f_n&=\sum\limits_{i=m}^n\dbinom{n}{i}(-1)^ig_i\\
g_n&=\sum\limits_{i=m}^n\dbinom{n}{i}(-1)^if_i
\end{aligned}
\]
第三组:
\[\begin{aligned}
f_n&=\sum\limits_{i=n}^m\dbinom{i}{n}g_i\\
g_n&=\sum\limits_{i=n}^m\dbinom{i}{n}(-1)^{i-n}f_i
\end{aligned}
\]
第四组:
\[\begin{aligned}
f_n&=\sum\limits_{i=n}^m\dbinom{i}{n}(-1)^ig_i\\
g_n&=\sum\limits_{i=n}^m\dbinom{i}{n}(-1)^if_i
\end{aligned}
\]
更为厉害的多元形态
若有
\[g(n_1,n_2,\cdots,n_m)=\sum\limits_{k_1=0}^{n_1}\sum\limits_{k_2=0}^{n_2}\cdots \sum\limits_{k_m=0}^{n_m}f(k_1,k_2,\cdots,k_m)\prod\limits_{i=1}^m\dbinom{n_i}{k_i}
\]
则
\[f(n_1,n_2,\cdots,n_m)=\sum\limits_{k_1=0}^{n_1}\sum\limits_{k_2=0}^{n_2}\cdots \sum\limits_{k_m=0}^{n_m}g(k_1,k_2,\cdots,k_m)\prod\limits_{i=1}^m(-1)^{n_i-k_i}\dbinom{n_i}{k_i}
\]
证明就大力推推式子吧。
矩阵理解
第一组:
考虑二项式定理\((x+1)^n=\sum\limits_{i=0}^n\dbinom{n}{i}x^i\)和\(x^n=(x+1-1)^n=\sum\limits_{i=0}^n\dbinom{n}{i}(-1)^{n-i}(x+1)^i\)
于是令\(f_i=(x+1)^i,g_i=x^i\),就有\(a_{n,i}=\dbinom{n}{i},b_{n,i}=\dbinom{n}{i}(-1)^{n-i}\),就得到了。
第二组:
同上,只需考虑\((1-x)^n\)和\(x^n=(1-(1-x))^n\)的二项式定理即可。
第三组:
发现这里的系数矩阵实际上对应着第一组中的\(\mathbf A^{T}\)。
那么由逆矩阵的转置是转置的逆,就得到了。
第四组:
同上,不过从第二组得到。
GF理解
以第一组为例,第二组是类似的,第三、四组暂时不知道GF怎么做。
只考虑\(m=0\)的情况。
设\(\hat F=\sum\limits_{n\ge 0} f_n\dfrac{z^n}{n!},\hat G=\sum\limits_{n\ge 0} g_n\dfrac{z^n}{n!}\)。
那么前一组式子就是\(\hat F=e^z\hat G\)。
于是\(\hat G=e^{-z}\hat F\),就得到了。
莫比乌斯反演
若有
\[f_n=\sum\limits_{d|n}g_{\frac{n}{d}}
\]
则
\[g_n=\sum\limits_{d|n}\mu(d)f_{\frac{n}{d}}
\]
若有
\[f_k=\sum\limits_{k|n}g_n
\]
则
\[g_k=\sum\limits_{k|n}\mu(\frac{n}{k})f_n
\]
证一下后一个。
\[\begin{aligned}
&\sum\limits_{k|n}\mu(\frac{n}{k})f(n)\\
&=\sum\limits_{t\ge 1}\mu(t)f(kt)\\
&=\sum\limits_{t\ge 1}\mu(t)\sum\limits_{kt|d}g(d)\\
&=\sum\limits_{k|d}g(d)\sum\limits_{t|\frac{d}{k}}\mu(t)\\
&=\sum\limits_{k|d}g(d)[\frac{d}{k}=1]\\
&=g(k)
\end{aligned}
\]
子集反演
当\(f_K\)表示恰好只有\(K\)中的元素符合某特殊性质时的答案,\(g_K\)表示钦定\(K\)之外的元素一定不符合该性质,那么有第一组式子:
\[\begin{aligned}
g_K&=\sum\limits_{L\subseteq K} f_L\\
f_K&=\sum\limits_{L\subseteq K}(-1)^{|K|-|L|} g_L
\end{aligned}
\]
当\(f_K\)含义不变,\(g_K\)表示钦定\(K\)中的元素符合某特殊性质时的答案时的答案,那么有第二组式子:
\[\begin{aligned}
g_K&=\sum\limits_{K\subseteq L} f_L\\
f_K&=\sum\limits_{K\subseteq L}(-1)^{|L|-|K|} g_L
\end{aligned}
\]
可以暴力代入证。其他不太会。
单位根反演
式子:
\[\sum\limits_{i=0}^{n-1}(\omega_n^i)^k=n[n\mid k]
\]
证明:
\(\sum\limits_{i=0}^{n-1}(\omega_n^i)^k=\sum\limits_{i=0}^{n-1}(\omega_n^k)^i\)
发现这是等比数列求和的形式,讨论公比\(\omega_n^k\):
-
若\(n \mid k\),则\(\omega_n^k=1\),故\(\sum\limits_{i=0}^{n-1}(\omega_n^i)^k=\sum\limits_{i=0}^{n-1}(\omega_n^k)^i=n\)
-
若\(n\nmid k\),则\(\omega_n^k \ne 1\),故\(\sum\limits_{i=0}^{n-1}(\omega_n^i)^k=\sum\limits_{i=0}^{n-1}(\omega_n^k)^i=\frac{(\omega_n^k)^n-1}{w_n^k-1}=0\)
综上,原式得证。
Stirling反演
式子:
\[f_n=\sum\limits_{k=0}^n{n\brace k}g_k\iff g_n=\sum\limits_{k=0}^n(-1)^{n-k}{n\brack k}f_k
\]
有反转公式,直接代入易证。
另一种式子:
\[f_m=\sum\limits_{k=m}^n{k\brace m}g_k\iff g_m\sum\limits_{k=m}^n(-1)^{k-m}{k\brack m}f_k
\]
Lagrange反演
便于从复合函数中提取系数。或者原函数是隐式的,解不出来,但是可以找到反函数。
形式Laurent级数
类似于形式幂级数,只不过最低次项的次数为\(n\in \mathrm Z\)。也就是说可能有负指数。
乘法逆和形式幂级数的定义式类似的。
对于非零\(f\),记\(\text{ord} f=\min\{k:f_k\ne 0\}\)。
显然对于\(g\ne 0\)有\(\text{ord}(fg)=\text{ord}f+\text{ord}g\)。
形式留数
定义形式留数:\(\text{res} f=[x^{-1}] f\)。
Lemma 1:对任意形式Laurent级数有\(\text{res} f'=0\)。因为求导后系数不会传递到\(-1\)次项。
Lemma 2:对任意形式Laurent级数有\(\text{res}(f'g)=-\text{res}(fg')\)。考虑乘法求导法则:\(0=\text{res}((fg)')=\text{res}(f'g+fg')=\text{res}(f'g)+\text{res}(fg')\)。
Lemma 3:对形式Laurent级数\(f\ne 0\)有\(\text{res}\Big(\dfrac{f'}{f}\Big)=\text{ord}f\)。证明是简单的。
Lemma 4:对形式Laurent级数\(f\)和形式幂级数\(g\ne 0\),有\(\text{res}(f)\text{ord}(g)=\text{res}(f(g)g')\)。证明是简单的。
复合逆
记\((A\circ B)(x)=A(B(x))\)。
\(f(x)=\sum\limits_{k\ge 1}f_kx^k\)存在复合逆\(f^{\langle -1\rangle}(x)\)当且仅当\(f(0)=0\ne f'(0)\),此时\(f^{\langle -1\rangle}(x)\)是唯一的。进一步地,若\(f(g(x))=g(f(x))=x\),那么\(g=f^{\langle -1\rangle}\)。
发现复合逆其实就是反函数。
Lagrange反演公式
令形式幂级数\(f,g\)互为复合逆,取形式Laurent级数(或者一个形式幂级数)\(\Phi\),那么:
\[[x^n]\Phi(f(x))=[x^{n-1}]\Phi(x)\dfrac{g'(x)}{g(x)}\Big(\dfrac{x}{g(x)}\Big)^n=[x^{-1}]\dfrac{\Phi(x)g'(x)}{g(x)^{n+1}}
\]
证明:
\[\begin{aligned}
\left[x^n\right]\Phi(f(x))&=\text{res}\Big(\dfrac{\Phi(f(x))}{x^{n+1}}\Big)\\
&=\text{res}\Big(\dfrac{\Phi(f(g(x)))g'(x)}{g(x)^{n+1}}\Big)\cdot\Big(\text{ord}(g)\Big)^{-1}\texttt{(根据Lemma 4可以得到。且可以发现后面乘上的是1)}\\
&=\text{res}\Big(\dfrac{\Phi(x)g'(x)}{g(x)^{n+1}}\Big)
\end{aligned}
\]
这样就好了。
但是我们更加熟悉一些特殊形式:
通过链式求导法则可知:
\[\Big(\dfrac{\Phi(x)}{g(x)^n}\Big)'=\dfrac{\Phi'(x)}{g(x)^n}-\dfrac{n\Phi(x)g'(x)}{g(x)^{n+1}}
\]
同时提取两边的形式留数,可以得到\(\text{res}\Big(\dfrac{\Phi(x)g'(x)}{g(x)^{n+1}}\Big)=\dfrac{1}{n}\text{res}\Big(\dfrac{\Phi'(x)}{g(x)^n}\Big)\)。
于是\([x^n]\Phi(f(x))=\dfrac{1}{n}\text{res}\Big(\dfrac{\Phi'(x)}{g(x)^n}\Big)\)。