「快速莫比乌斯变换(FMT)与快速莫比乌斯反演(FMI)」

更好的阅读体验?

博主的 BiBi 时间

这应该是本蒟蒻的第一篇学习笔记吧。

定义与结论

FMT

定义

f ( S ) = ∑ S ′ ∈ S g ( S ′ ) f(S)=\sum_{S'\in S}g(S') f(S)=SSg(S)

FMI

则有
g ( S ) = ∑ S ′ ∈ S ( − 1 ) ∣ S ∣ − ∣ S ′ ∣ ∗ f ( S ′ ) g(S)=\sum_{S'\in S}(-1)^{|S|-|S'|}*f(S') g(S)=SS(1)SSf(S)

证明

不妨设集合 x , y , z x,y,z x,y,z x , y , z x,y,z x,y,z 集合各自大小为 a , b , c a,b,c a,b,c(这里的集合大小是二进制下一的个数)。

我们知道,若将后面的结论带入前面的式子之后等式成立,那么这个结论是正确的。

∑ y ∈ x g ( y ) = ∑ y ∈ x ∑ z ∈ y ( − 1 ) b − c ∗ f ( z ) \sum_{y\in x} g(y)=\sum_{y\in x} \sum_{z\in y} (-1)^{b-c}*f(z) yxg(y)=yxzy(1)bcf(z)

仔细观察这个式子,我们发现 x x x 是固定的,我们转而考虑每一个 z z z 的情况(因为后面式子只和 y y y 的大小有关)。

对于每个 z z z,应该有 C ( a − c , b − c ) C(a-c,b-c) C(ac,bc) 种方案( b b b 就是枚举 y y y 的大小, C ( a − c , b − c ) C(a-c,b-c) C(ac,bc) 就是 b b b 大小的 y y y 的可能情况)。

令(这个设置其实是为了防止后文误解)

t = ∑ y ∈ x g ( y ) t=\sum_{y\in x} g(y) t=yxg(y)

那么就有:

t = ∑ z ∈ x f ( z ) ∗ ∑ b = c a C ( a − c , b − c ) ∗ ( − 1 ) b − c t=\sum_{z\in x} f(z)*\sum_{b=c}^{a}C(a-c,b-c)*(-1)^{b-c} t=zxf(z)b=caC(ac,bc)(1)bc

式子可以改写为:

t = ∑ z ∈ x f ( z ) ∗ ∑ b = c a C ( a − c , b − c ) ∗ ( − 1 ) b − c ∗ 1 a − b t=\sum_{z\in x} f(z)*\sum_{b=c}^{a}C(a-c,b-c)*(-1)^{b-c}*1^{a-b} t=zxf(z)b=caC(ac,bc)(1)bc1ab

二项式定理得:

t = ∑ z ∈ x f ( z ) ∗ 0 a − c t=\sum_{z\in x} f(z)*0^{a-c} t=zxf(z)0ac

显然只有当 a = c a=c a=c 时才会取到 f ( z ) f(z) f(z) 的值,又因为 z ∈ x z\in x zx,所以此时 x = z x=z x=z,那么得出 t = f ( x ) t=f(x) t=f(x)

所以结论成立。

另外记录一个有趣的小证明(这个证不了全部)。其实结论就是当 a − c a-c ac 为奇数时,后面那一坨 f ( z ) f(z) f(z) 的系数为 0 0 0

首先有 C ( a − c , b − c ) = C ( a − c , a − c − ( b − c ) ) = C ( a − c , a − b ) C(a-c,b-c)=C(a-c,a-c-(b-c))=C(a-c,a-b) C(ac,bc)=C(ac,ac(bc))=C(ac,ab)

你可以把 b b b 看作在区间 [ c , a ] [c,a] [c,a] 中游走的点,当 d ( a , b ) = d ( b , c ) d(a,b)=d(b,c) d(a,b)=d(b,c) 时, C C C 值相等(这不是废话)。然而此时 − 1 -1 1 的指数的奇偶性明显不同。(实在不行可以看图)

c b     b' a
1 2 3 4 5  6

代码实现

相信自己,我先咕为敬
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值