一些炫酷反演魔术(长期更新)

参考:生成函数与反演by NaCly_Fish

vfleaking的博客

写在前面

主要通过以下方式证明/推导:

  • 代入计算

  • 矩阵

  • GF

代入计算实在懒得算了,只是提一下。

关于矩阵理解

首先可以发现反演的一组式子都形如:

\[\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)\)

posted @ 2024-09-29 15:41  RandomShuffle  阅读(107)  评论(0)    收藏  举报