这是一个数学完全从0开始异世界生活的人的反演笔记。
我们发现自己不会二项式定理,故无法学习二项式反演,所以我们要先学习一个:
引入:
二项式定理:
怎么证明呢?
实际上就是让我们证明右边的那个展开式的系数嘛。
实际上,展开的话就是在 n 个
我们由二项式定理可以引出一个重要的结论:
让我们冷静一下之后,重新得到了这个结论:
随便叫一个名字吧……
二项式定理0定理,简称二十定理?(大雾
正题
二项式反演:
基本条件:
我们对 g 进行恒等变形:
[n=k] 这个式子等价于 [n−k=0] ,那么运用20定理(2333333):
注意到, k 和
(如果不能理解的话请看下面部分)
把这个叫做组合数变形1吧:
理性证明:
证明完毕!
既然我们选
k
选
我们对求和符号进行交换。
注意到初始条件:
那么我们就得到了 二项式反演:
下标好难受啊。
我们换一下变量名和下标吧。
死理性派:
我觉得这个求和符号交换的不对!
k=k0 时,显然有:
呃……
好好好,相等总可以了吧。
这样我们不仅得到了反演:
看起来没什么的。
推广一下,实际上:
求和符号交换法则 [1] 诞生啦!
完整的二项式反演定理书写:
若已知:
则:
反演是可逆的。
我们上面写了二项式反演,用的自然是二项式定理(其实就是容斥原理嘛)。接下来可以学习更高端的东西啦!
莫比乌斯反演:
定义:一种函数叫做莫比乌斯函数。
它是满足这样性质的函数:
莫比乌斯反演的前提条件是有两个数论函数 f 和
让我们重新回忆一下二项式反演的时候我们做了啥:
1.找出一个恒等变换。
2.把[P]这个条件P代入。
同样地:
带入:
交换求和符号:
我们有一个初始条件:
照着写:
变漂亮一点?
这就是我们的 莫比乌斯反演。
整理一下:
已知:
可得:
死理性派:
为什么交换求和符号是对的?
设 (d=d0)|n ,我们只需要证明在任意 d0 处相等。
在前面的式子中:
在后面的式子中:
显然是相等的对吧。
终于解释清楚了莫比乌斯反演。
不过莫比乌斯反演还有第二种形式,我们到时候再说。
若
则
终于证明出来了……累得要死TAT
令 k=dn
枚举k。
子集反演
预备知识:
理由?
显然大小为 |p| 的集合出现了 (|s||p|) 次。
这个应该没有忘记吧。
把它叫做非空集合恒等式吧。
我们如果要解决这样一类问题?
我们求 c 要怎么求呢?
首先直接求肯定不好求对吧。
我们把它变成子集的形式。<称为子集变换>
子集变换怎么求呢?
for(int i = 0;i < n;++ i)
for(int s = 0;s < (1 << n);++ s)
if(s & (1 << i))f[s] += f[s ^ (1 << i)];
之后,f就变为了子集变换。
那么我们去求
c′r
吧。
毫无疑问,
c′r=∑p⊆rcp
.
但这样肯定还不够,我们要求
c
,所以我们要另找一个东西和
先考虑计算
a′r
。
我们设
a[i][S]
表示在插入第
i
个元素时,终止集合形态为
这样我们可以在 O(n2n) 的时间复杂度进行子集变换。
(听说叫莫比乌斯变换,不过无所谓了吧233)
已知:
还没完呢,我们要求出 cr .
根据非空集合恒等式:
初始条件:
变换下标及不好看的变量:
初始条件:
推出:
死理性派:没错我又是来问和号为什么能交换的……诶你别打我啊……
要证明这两个相等,设其中一个在 q0 处(默认它是 s 的子集)。
显然相等对吧。
至此似乎反演内容已经要接近尾声了。
然而实际上似乎还有很多事情没有学会。
不管了,本篇blog先到这里吧,确实太累了。
这个真的很认真的有在写……
感觉终于不是硬生生抄了一遍证明而是真正意义上的写出来了2333
补充容斥原理:
形式上是:
这是显然的,因为我们对其中某个满足在 k 个集合里的元素
对于 >k 显然无意义。
对于小于 k ,每次结算的次数是
二项式定理大家都会,就不说了hh。
对于超集显然也成立。
实际上,并集也可以转成交集。
A⋃B=A¯¯¯⋂B¯¯¯
另外如果我们定义一种变换 ϕ :
则显然有其逆变换:
<带入一下证明就好了。>
那么我们就可以把”恰好”转化成”至少”:
令 f(s) 表示恰好集合为 s 的元素个数,
如果我们在集合的 大小相同的情况下,两个集合是等价的。
那么我们就可以令 bn=∑i=0