狄利克雷卷积与莫比乌斯反演
主要内容
- 数论函数
- 狄利克雷卷积
- 积性函数
- 莫比乌斯反演
- 数论分块
数论函数
数论函数是一类定义域是正整数的函数,可以类比数列。
加法,数乘比较简单,略过。
狄利克雷卷积
定义两个数论函数的狄利克雷卷积为 ∗。
若 h=f∗g 则:
h(n)=∑i|nf(i)⋅g(ni)
如何求函数的逆元。
令:
g(n)=1f(1)([n=1]−∑i|n,i≠1f(i)⋅g(ni))
可以用方程求出 g。
如此:
f∗g=f(1)⋅g(n)+∑i|n,i≠1f(i)⋅g(ni)=[n=1]=ϵ
积性函数
对于一个数论函数,如果有 i⊥j 使得 f(i⋅j)=f(i)⋅f(j)。
那么此函数成为积性函数。
如果对于任意的 i,j 都有 f(i⋅j)=f(i)⋅f(j) 那么其为完全积性函数。
常见的积性函数有:
特殊的 1(n)=id0(n)=1
它们的积性比较显然,不证。
记住两个结论:
-
两个积性函数的狄利克雷卷积是积性函数
-
积性函数的逆是积性函数
比较复杂,不打算证明了。
如何利用积性函数的结论,最简单的是,可以线性筛,因为我们线性筛的过程中顺便求出了其最小的质因子,可以利用积性解决函数的取值。
同时由于积性的性质,函数的取值实际上又其所有质数幂处的取值决定,对于这些取值,ϕ 和 σ0 都是比较好求的,所以可以用线性筛预处理。
给出质数幂处的公式:
ϕ(pk)=(p−1)⋅pk−1σ0(pk)=k+1
一个重要性质。
尝试证明 ϕ∗1=id
(ϕ∗1)(n)=∑i|nϕ(i)=n
由于上文提及的狄利克雷卷积的性质,ϕ∗1 为积性函数,id 也为积性函数,所以只需要证明其在质数幂上相等即可。
显然有:
(ϕ∗1)(pk)=k∑i=0ϕ(pi)=[k∑i=1(p−1)⋅pi−1]+1=(k∑i=1pi−pi−1)+1=pk=id(pk)
得证。
莫比乌斯反演
定义 1 的逆是 μ。
如此,若 g=f∗1,那么就有 f=g∗μ。
即若 g(n)=∑d|nf(d) 则,f(n)∑d|nμ(nd)g(d)。
比如根据上文性质有 ϕ=μ∗id。
那么有 ϕ(n)=∑d|nμ(nd)d。
又有 idk 的逆为 f(n)=nk⋅μ(n)。
我们可以算出
当 n=p1⋅p2…pk 其中 p 为不同的质数时,μ(n)=(−1)k。
否则,μ(n)=0。
记住结论吧。
另一个方向上的莫比乌斯反演。
g(x)=∑n|df(d)
定义新操作 ⊕。
(f⊕g)(x)=∑n|df(dn)g(d)。
可以证明:
(f∗g)⊕h=f⊕(g⊕h)
那么:
f=(μ∗1)⊕f=μ⊕(1⊕f)=μ⊕g
所以:
f(n)=∑n|dμ(dn)g(d)
数论分块
浅谈。
经典问题是处理:
∑⌊ni⌋f(i)
我们不难发现 ⌊ni⌋ 最多有 O(√n) 个取值。
进行一个简单的说明。
当 i<√n 时:i 的取值有 √n 个。
当 i>√n 时:ni<√n 取值有 √n 个。
考虑如何快速的求出所有 ⌊ni⌋ 的取值。
| for(int i=1,j;i<=n;i=j+1){ |
| j=n/(n/i); |
| } |
证明自行百度,可以感性理解。
此处,既然我们已经求出了 [i,j] 中的数 ⌊ni⌋ 一致,我们可以把它们放在一起计算,对于 f 求一个前缀和即可。
对于多元的情况,我们也可以类似的处理。
例题
P1447 [NOI2010] 能量采集
首先定义:
f(d)=n∑i=1m∑j=1[gcd(i,j)=d]
故有:
F(n)=∑n|df(d)=⌊nd⌋×⌊md⌋
答案为:
ans=n∑i=1m∑j=1gcd(i,j)=min(n,m)∑d=1f(d)×d
莫比乌斯反演:
ans=min(n,m)∑d=1dmin(n,m)∑d|kμ(kd)F(k)=min(n,m)∑d=1dmin(n,m)d∑q=1μ(q)×⌊ndq⌋×⌊mdq⌋
令 T=dq。
=min(n,m)∑d=1dmin(n,m)∑T=1[d|T]×μ(Td)×⌊nT⌋×⌊mT⌋=min(n,m)∑d=1min(n,m)∑d|Td×μ(Td)×⌊nT⌋×⌊mT⌋
更换 d 和 T 的枚举顺序。
=min(n,m)∑T=1min(n,m)∑d|Td×μ(Td)×⌊nT⌋×⌊mT⌋=min(n,m)∑T=1⌊nT⌋×⌊mT⌋min(n,m)∑d|Td×μ(Td)
关注后面的部分:
h(T)=∑d|Td×μ(Td)
发现这是狄利克雷卷积的形式。
∵h=id∗μ∴h∗1=id∗μ∗1∴h∗1=id∗ϵ∴h∗1=id∵ϕ∗1=id∴h=ϕ
带回原来的式子。
ans=min(n,m)∑T=1⌊nT⌋×⌊mT⌋×ϕ(T)
数论分块即可。
参考代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具