莫比乌斯反演 学习笔记

来源:互联网 发布:it技能 编辑:程序博客网 时间:2024/05/22 02:19

预备知识

枚举除法

ni只有O(n)种取值
并且对于i,nni是i被n除并下取整取值相同的一段区间的右端点

一个非常有用性质:
nab=nab=nba

积性函数

f(ab)=f(a)f(b),(a,b)=1
完全积性函数:不要求ab互质。

若函数f(n)为积性函数,那么
f(n)=if(pkii)
并且由于f(a1)=f(a)f(1)
可以得出f(1)=1

常见函数

id(n)=n
e(n)=[n=1]
1(n)=1
d(n)=n的约数数量
σ(n)=n所有约数的和
除了最后一个其余都是积性函数

狄利克雷卷积

对于算术函数f(n),g(n),定义其狄利克雷卷积
(f×g)(n)=d|nf(d)g(nd)
比如说一个公式n=d|nφ(d)就可以表示为:id=φ×1
狄利克雷卷积的运算满足:
(1)交换律:f×g=g×f
(2)结合律:(f×g)×h=f×(g×h)
(3)分配律:f×(g+h)=f×g+f×h

几个性质:
1、存在单位函数e满足f=f×e=e×f
可以根据卷积的定义理解一下,枚举n的约数时,只有当d=ne(nd)=1
2、如果f,g都为积性函数,那么f×g也为积性函数

莫比乌斯函数μ

定义

(1)若d=1,那么μ(d)=1
(2)若d=p1p2..pkpi均为互异素数,那么μ(d)=(1)k
(3)其他情况下,μ(d)=0

显然,μ为积性函数。

性质

[n=1]=d|nμ(d)
1×μ=e
不会证明…

莫比乌斯反演

公式

F(n)f(n)是定义在非负整数集合上的两个函数
若满足条件F(n)=d|nf(d)
那么可以得出结论f(n)=d|nμ(d)F(nd)
即已知F=f×1
f=μ×F

证明

利用狄利克雷卷积证明莫比乌斯反演公式
1° 已知F=f×1,两边同乘μF×μ=f×1×μ
1×μ=e,那么F×μ=f×e
3° 又因为f×e=f,得出f=μ×F
证毕

另一个公式

F(n)f(n)是定义在非负整数集合上的两个函数
若满足条件F(n)=n|df(d)
那么可以得出结论f(n)=n|dμ(dn)F(d)

似乎这个公式在做题的时候更常用些
因为反演的题gcd用的比较多…

化式子常用技巧

i=1nd|i=d=1nnd

杜教筛

栗子:求i=1nφ(i)i=1nμ(i)1n2311

关于杜教筛:
F(n)=if(i),存在g=f×I, I表示恒等函数,即g=d|nf(d)
我们定义G(n)=ig(i) ,就可以得到F(n)=G(n)iF(ni)
如果G(n)可以在一定时间内求解,那么我们最好情况下可以做到O(n23)的时间求解F(n)

假设计算出F(n)的复杂度为T(n),则有T(n)=O(n)+i=1nT(i)+T(ni),这里只展开一层就可以了,更深层的复杂度是高阶小量,所以有T(n)=i=1nO(i)+O(ni)=O(n34)
如果用筛法预处理前k个F(n),且kn,则复杂度变为T(n)=i=1nkni=O(nk),当k=O(n23)时可以取到较好的复杂度T(n)=O(n23)

实际上上面的复杂度证明我也不懂…只是搬运了神犇的讲解…

φ

利用一个反演公式n=d|nφ(d)=d|n,d<nφ(d)+φ(n)
得出φ(n)=nd|n,d<nφ(d)
那么设P(n)=i=1nφ(n)
P(n)=i=1nφ(n)
=i=1n(id|i,d<iφ(d))
=n(n+1)2i=1nd|i,d<iφ(d)
i=id
那么原式=n(n+1)2id=1nd|id,d<idφ(d)
=n(n+2)2i=2nd=1niφ(d)=n(n+1)2i=2nP(ni)
也就是说P(n)=n(n+1)2i=2nP(ni)

μ

M(n)=i=1nμ(i)
同样利用一个反演公式1(n)=d|nμ(d)来化简
1(n)=i=1n[i=1]=i=1nd|iμ(d)=i=1nd=1n[d|i]μ(id)
i=id
那么原式=id=1nd=1nμ(i)=d=1ni=1ndμ(i)=i=1nd=1niμ(d)=i=1nM(ni)
也就是说i=1nM(ni)=1
又因为M(n)=i=1nM(ni)i=2nM(ni)
所以M(n)=1i=2nM(ni)
咦怎么感觉就是省了点常数…

加几个链接:
http://blog.csdn.net/skywalkert/article/details/50500009
http://jiruyi910387714.is-programmer.com/posts/195270.html
http://www.cnblogs.com/abclzr/p/6242020.html

例题

1 0
原创粉丝点击