反演魔术(留坑)

反演魔术

参考文章:

command-block GXZlegend

反演本质:两个函数双向(求和)关系

差分和前缀和本质就是反演

反演可以由矩阵来寻找关系,定义一个关系矩阵

\(F[n]=\sum\limits_{i=0}^nG[i]~~~~G[n]=F[n]-F[n-1]\)

定义矩阵\(A\)为关系矩阵,\(F[n]=\sum\limits_{i=0}^∞A_{n,i}G[i]\)

前缀和关系矩阵\(A_{i,j}=[j\le i]\),差分关系矩阵\(B_{i,j}=-1(j=i-1)||1(j=i)\)

易知\(A*B\)为单位矩阵,反演关系矩阵互逆

反演方法: 矩阵转置之后仍然互逆

\(\sum\limits_{t=0}(-1)^{n-t}A_{n,t}B_{t,m}=[n=m]⟺\sum\limits_{t=0}(-1)^{t-m}A_{n,t}B_{t,m}=[n=m]\)

欧拉反演

本来没有欧拉反演这个名字的,只不过大家习惯性称之为欧拉反演
所谓欧拉反演其实就是利用欧拉函数的一条性质
\(\begin{aligned}n=\sum_{d|n}\varphi(d)\end{aligned}\)
我们试着把 \(n\)换成其他东西试试
\(\begin{aligned}gcd(i,j)=\sum_{d|gcd(i,j)}\varphi(d)=\sum_{d|i}\sum_{d|j}\varphi(d)\end{aligned}\)
让我们求个东西试试
\(\begin{aligned}\sum_{i=1}^ngcd(i,n)=\sum_{i=1}^n\sum_{d|i}\sum_{d|n}\varphi(d)=\sum_{d|n}\sum_{i=1}^n\sum_{d|i}\varphi(d)=\sum_{d|n}\frac{n}{d}\varphi(d)\end{aligned}\) 把它重写一遍作为结论
\(\begin{aligned}\sum_{i=1}^ngcd(i,n)=\sum_{d|n}\frac{n}{d}\varphi(d)\end{aligned}\)

二项式反演

通过“指定某若干个”"恰好若干个"问题

类似多步容斥\(|A_1∪A_2...∪A_n|=\sum_{1\le i\le n}|A_i|-\sum_{1\le i<j\le n}|A_i∩A_j|+...(-1)^{n-1}|A_1∩A_2...∩A_n|\)

反演形式

\(f(n)=\sum\limits_{i=0}^n(-1)^i{n\choose i}g(i)\)\(g(n)=\sum\limits_{i=0}^n(-1)^i{n\choose i}f(i)\)

形式

\(h(n)=(-1)^ng(n)\)

\[f(n)=\sum_{i=0}^n{n\choose i}g(i)⇔g(n)=\sum_{i=0}^n(-1)^{n-i}{n\choose i}f(i) \]

也可以根据组合意义来想\({n\choose i}{i\choose j}\)\(n\)个里选\(i\)个,\(i\)\(j\)

反过来想,从\(n\)个里选\(j\)个,再从剩下的选\(i-j\)\({n\choose j}{{n-j}\choose{i-j}}\)

形式

最常用公式

\[f(n)=\sum_{i=n}^m{i\choose n}g(i)⇔g(n)=\sum_{i=n}^m(-1)^{i-n}{i\choose n}f(i) \]

可以用基本反演方法推,略了

错排问题:\(a_i\not=i\)的排列方案数

\(D[n]=\)长度为\(n\)错排数

假如有\(k\)个不在自己的位置上,那我们任意选定\(k\)个位置,然后将它们严格错排,剩下不动,即可不重不漏。

\(n!=\sum\limits_{i=0}^n{n\choose i}D[i]\)

反演公式一可得\(\large D[n]=n!\sum\limits_{i=0}^n\frac{(-1)^i}{i!}\) 这就是错排公式\(qwq\)

posted @ 2020-09-25 08:18  INFP  阅读(162)  评论(1编辑  收藏  举报