莫比乌斯反演学习笔记
引子
很久以前就听说过了莫比乌斯反演这个名词,每次都看的稀里糊涂,但一直没能学下去。也碰到不少莫比乌斯反演的题目,无奈只能跳过。最近各种爆炸,心态极端不好,几度想放弃,想来想去还是应该坚持下去,学点新东西。于是再次百度一些以前遗留下来没学完的知识点。
主要学习了
@litble 初涉莫比乌斯反演(附带例题)
@outer_form 莫比乌斯反演定理证明(两种形式)
基本知识
莫比乌斯反演初始是两个相互关联的函数 F(x) 和 f(x) ,
形式1
一种形式是已知
F(n)=∑d|nf(d)
即
F(n) 是所有
f(d) 的和,其中d是n的因数
莫比乌斯反演的结果是:
f(n)=∑d|nμ(d)F(nd)
形式2
另一种形式是已知
F(n)=∑n|df(d)
即
F(n) 是所有
f(d) 的和,其中d是n的倍数
莫比乌斯反演的结果是:
f(n)=∑n|dμ(dn)F(d)
;
其中
μ(x) 是莫比乌斯函数,网上都可以看到这么一个公式:
μ(x)=⎧⎩⎨⎪⎪⎪⎪⎪⎪1(−1)k0x=1x=p1p2p3...pk,pi为素数且pi≠pj(∀i∀j,i≠j)其他情况(906)
莫比乌斯函数 μ(x) 性质
1.
∑d|nμ(d)={10n=1n>1(899)
证明 若n=1,∑d|nμ(d)=1若n>1,n的标准分解式:n=pk11pk22pk33...pkmmd|n⟺d=pv11pv22pv33...pvmm(∀i(1≤i≤m),0≤vi≤ki)①∃vi≥2,μ(d)=0,可直接忽略②故d=pv11pv22pv33...pvmm中的m个指数仅可取0与1,μ(d)才不为0故问题转化为有m个空位,每个位置可填上0或者1显然每一种填法对应一个对答案有贡献的d假使恰好填了r个1,则相应的μ(d)=(−1)r,而恰好填r个1的方法数是Crm因此,∑d|nμ(d)=∑0mCrm(−1)r×1m−r=(−1+1)m=0
2.
∑d|nμ(d)d=ϕ(n)n
这个涉及到了欧拉函数,目测我肯定证明不出来,所以就直接记下来好了。而且貌似莫比乌斯反演并未用到这个性质。 开始反演
形式1
∑d|nμ(d)F(nd)=∑d|nμ(d)∑d′|ndf(d′)=∑d′|nf(d′)∑d|nd′μ(d)
第一行到第二行运用的是
F(x) 与
f(x) 的关系换掉
F(nd) .
第二行到第三行的我的理解:
对第二行:
d|n⟹dd′|n d′|nd⟺dd′|n 显然当且仅当
dd′|n 成立时才会对答案有
μ(d)×f(d′) 的贡献
对第三行:
d|nd′⟺dd′|n dd′|n⟹d′|n 所以当且仅当
dd′|n 成立时才会对答案有
μ(d)×f(d′) 的贡献
现在我们只差最后一点点了
∑d|nd′μ(d)={01nd′>1,即n>d′nd′=1,即n=d′
因此: ∑d′|nf(d′)∑d|nd′μ(d)=∑d′|n&d′<nf(d′)∑d|nd′μ(d)+∑d′|n&d′=nf(d′)∑d|nd′μ(d)=0+f(n)×1=f(n)
因此我们证明到了莫比乌斯反演的结果:
∑d|nμ(d)F(nd)=f(n)
形式2
F(n)=∑n|df(d)⟹f(n)=∑n|dμ(dn)F(d)
证明 右边=∑n|dμ(dn)F(d)=∑n|dμ(dn)∑d|d′f(d′)=∑k=1+∞μ(k)∑kn|d′f(d′)=∑n|d′f(d′)∑k|d′nμ(k)=f(n)记d=kn③④⑤
关于③到④的自我理解和解释
对于③,当且仅当 kn|d′ 时对答案有 μ(k)∗f(d′) 的贡献。
且 n 对于要证明的式子为常数, k取遍[1,+∞)的每一个整数,d′取遍(kn)的所有倍数 flag A
对与④,
k|d′n⟺kn|d′
kn|d′⟹n|d′
所以当且仅当 kn|d′ 成立时才会对答案有 f(d′)×μ(k) 的贡献。
d′取遍n的所有倍数,k取遍d′n的所有因数 flag B
现在只需要证明
满足 flag A
的所有序偶(数对) <k,d′> 构成的集合A
和
满足flag B
的所有序偶(数对) <k,d′> 构成的集合B
是相等的即可。
以下字母若无特殊说明,取值范围皆是正整数
A={<k,d′>|kn|d′}
B={<k,d′>|n|d′且k|d′n}
又 k|d′n⟺kn|d′⟹n|d′
所以 B={<k,d′>|kn|d′}
显然 A=B
因此③可以到④
④到⑤和前面的类似,当且仅当 d′n=1 , ∑k|d′nμ(k)≠0
因此 d′=n 才有意义,代入很快化为 f(n)
莫比乌斯函数的求法
注意到莫比乌斯函数的条件积性,对欧拉筛熟悉的不难时空复杂度皆为 O(n) 预求出 μ(1) ~ μ(n)
先提交以下,后面再补代码和题目
逃
2018-09-13 11:44:55