关于反演原理以及一个例子:二项式反演(世界上最垃圾的组合数学2)(坑)

前言

准备期末考就不做题了吧。。。

填一点坑。

反演原理

为了下文方便,我们定义一个函数\(U_{i,j}=[i=j]\),其中\([q]\) 表示\(q\)成立时值为\(1\),反之值为\(0\)

首先我们有一个数列\(a\),以及一个二元函数\(f_{i,j}\),以及一个已经知道的数列\(b\)

\(a\)的生成法则为:\(a_{i}=\sum\limits_{j=0}^{i}f_{i,j}b_{j}①\)

那么假如我们直到了\(a\),能不能通过类似得生成法则倒推回\(b\)呢(这也就意味着在这个生成法则上,任意一个\(a\)数列都对应着一个\(b\)数列,有点反函数的味道),这个过程就叫反演。

假定也有一个函数\(g\)

那么\(b_{i}=\sum\limits_{j=0}^{i}g_{i,j}a_{j}②\)

那么我们把\(①\)带入\(②\)中得:

\(b_{i}=\sum\limits_{j=0}^{i}g_{i,j}\sum\limits_{k=0}^jf_{j,k}b_{k}\)

\(b_{i}=\sum\limits_{j=0}^{n}b_{j}\sum\limits_{k=j}^{n}g_{i,k}f_{k,j}③\)

那么,一个比较明显的事情就是如果两边需要相等的话,那么需要:

\(\sum\limits_{k=j}^ig_{i,k}f_{k,j}=U_{i,j}\)

那么能不能证明如果不满足这个就会爆掉???

如果\(j=i\)\(\sum\limits_{k=j}^ig_{i,k}f_{k,j}\)不等于\(1\),那么直接其余\(b\)\(0\),就可以让③不成立,同理,如果\(j≠i\)时,\(\sum\limits_{k=j}^ig_{i,k}f_{k,j}\)不等于\(0\),那么除\(j\)以外\(b\)都取\(0\),照样不行,所以只有满足上述式子,这条式子才能成立。

这个就是充要条件:

\(∀i,j∈N且0≤j≤i,\sum\limits_{k=j}^ig_{i,k}f_{k,j}=U_{i,j}\)

当然,在参考资料的核心文章中提到了一个条件:

\(∀i,j∈N且0≤j≤i,\sum\limits_{k=j}^if_{i,k}g_{k,j}=U_{i,j}\)

我觉得也是充要条件,但是代数证明我还是不会证明。。。

至于这个的证明,如果只是由这个反演出发是很好想的。

用列方程可以通过\(f,g\)中的某一个解出另外一个,然后通过反证法可以证明解就是我们解出来的那个,如果从这个角度上讲的话,这两个确实是等价的。

二项式反演

公式1

一群神仙就想到了组合数跟这条式子不谋而合。

如果设定\(f_{i,j}=(-1)^jC_{i}^{j},g_{i,j}=(-1)^jC_{i}^{j}\),上述的式子竟然就可以完美的成立?

具体式子列出来:\(a_{i}=\sum\limits_{j=0}^{i}(-1)^jC_{i}^jb_{j}\),那么\(b_{i}=\sum\limits_{j=0}^{i}(-1)^jC_{i}^ja_{j}\)

那么这个式子要怎么去证明了?

其实就是证明:

\(∀i,j∈N且0≤j≤i,\sum\limits_{k=j}^i(-1)^{k+j}C_{i}^kC_{k}^j=U_{i,j}\)

运用恒等式:\(C_{i}^kC_{k}^j=C_{i} ^{j}*C_{i-j}^{i-k}\)

变成:\(C_{i}^j\sum\limits_{k=j}^i(-1)^{k +j}C_{i-j}^{i-k}\)
发现\(i-k\)的范围在\([0,i-j]\),化成:
变成:\(C_{i}^j\sum\limits_{k=0}^{i-j}(-1)^{(i-k)+j}C_{i-j}^{k}\)

不难发现,在\(i=j\)时,式子等于\(1\),反之等于\(0\),成立。

证毕。

公式2

\(a_{i}=\sum\limits_{j=0}^{i}C_{i}^jb_{j}\),那么\(b_{i}=\sum\limits_{j=0}^{i}(-1)^{i-j}C_{i}^ja_{j}\)

这个证明利用公式1就行了,设\(h_{i}=b_{i}*(-1)^i\)

那么\(a_{i}=\sum\limits_{j=0}^iC_{i}^jh_{j},\frac{h_{i}}{(-1)^i}=\sum\limits_{j=0}^i(-1)^jC_{i}^ia_{i}\)

化简一下就可以证明完毕。

公式3

定义一个上界\(lim\)

由于感觉把\(i\)换成\(n\)更加好看,所以换成\(n\)

\(a_{n}=\sum\limits_{i=n}^{lim}C_{i}^nb_i\)\(b_{n}=\sum\limits_{i=n}^{lim}(-1)^{i-n}C_{i}^na_{i}\)

当然,这里的证明我个人认为GXZlegend写的比我的好,建议去看他的。后面打算把证明换成GXZlegend的

这条式子看起来特别难证明,因为和上面的式子不一样,但是如果我们换一下形式呢?比如把\(a,b\)翻转一下:

\(a_{lim-n}=\sum\limits_{i=0}^{lim-n}C_{lim-i}^{n}b_{i}\)\(b_{lim-n}=\sum\limits_{i=0}^{lim-n}(-1)^{lim-i-n}C_{lim-i}^{n}a_{i}\)

然后再用\(k\)代替\(lim-n\),那么\(n=lim-k\)

\(a_{k}=\sum\limits_{i=0}^{k}C_{lim-i}^{lim-k}b_{i}\)\(b_{k}=\sum\limits_{i=0}^{k}(-1)^{k-i}C_{lim-i}^{lim-k}a_{i}\)

也就是:
\(a_{n}=\sum\limits_{i=0}^{n}C_{lim-i}^{lim-n}b_{i}\)\(b_{n}=\sum\limits_{i=0}^{n}(-1)^{n-i}C_{lim-i}^{lim-n}a_{i}\)

进一步化简:
\(a_{n}=\sum\limits_{i=0}^{n}C_{lim-i}^{lim-n}b_{i}\)\(b_{n}=\sum\limits_{i=0}^{n}(-1)^{n-i}C_{lim-i}^{lim-n}a_{i}\)

这样子,就比较好证明了:

\(g_{i,j}=(-1)^{i-j}C_{lim-j}^{lim-i},f_{i,j}=C_{lim-j}^{lim-i}\)

\(∀i,j∈N且0≤j≤i,\sum\limits_{k=j}^i(-1)^{i-k}C^{lim-i}_{lim-k}C_{lim-j}^{lim-k}=U_{i,j}\)

\(\sum\limits_{k=j}^i(-1)^{i-k}C^{lim-i}_{lim-k}C_{lim-j}^{lim-k}=C_{lim-j}^{lim-i}\sum\limits_{k=j}^i(-1)^{i-k}C_{i-j}^{k-j}=C_{lim-j}^{lim-i}\sum\limits_{k=j}^i(-1)^{i-k}C_{i-j}^{i-k}=C_{lim-j}^{lim-i}\sum\limits_{k=0}^{i-j}(-1)^kC_{i-j}^k=U_{i,j}\)

证毕。

参考资料

核心文章:http://blog.miskcoo.com/2015/12/inversion-magic-binomial-inversion
二项式反演的参考资料:
https://www.cnblogs.com/sdzwyq/p/9920531.html
https://www.cnblogs.com/lcyfrog/p/11772757.html
https://www.cnblogs.com/GXZlegend/p/11407185.html

  1. 反演原理中关于两种条件他们之前的关系
  2. 我需要添加组合意义。
posted @ 2020-12-25 13:40  敌敌畏58  阅读(287)  评论(0编辑  收藏  举报