定义:(f∗g)(n)=∑d|nf(d)g(n/d)
很显然满足交换律和结合律。
为积性函数的有:
I(n) (或1(n) ),恒等于1,所以叫恒等函数
ϵ(n) (或者e(n) ),当且仅当 n=1 时,其值为 1,否则为 0,其满足(e∗f=f)(因此为狄利克雷卷积的单位元)
id(n)=n 为单位函数。
以上为完全积性函数。
以及:
φ(n) ,欧拉函数,小于 n 的整数中与 n 互质的数的个数。
μ(n) ,莫比乌斯函数,接下来我们重点讲,暂且不介绍。
虽然没有完全积性函数优美,但是这很好吧,这可以吧。(
然后研究一下这个积性函数的性质。
这个易证了,f(1)=f(1)f(1)
这个稍微难一点。
证明:
定义两个积性函数 f,g ,其卷积为 G=f∗g.
任取两个互质的数 a,b
G(a)G(b)
=∑d|af(d)g(b/d)∗∑t|bf(t)g(b/t)
=∑d|a∑t|bf(d)g(a/d)f(t)g(b/t)
=∑dt|abf(dt)g(ab/dt)
=G(ab)
Q.E.D.
归纳证明,就不证明了
对于两个函数 f,F,满足 F(n)=∑d|n(1∗f(d))
等价于 F=I∗f,然后有 f=I−1∗F
我们把 I−1 称为 μ 莫比乌斯函数。
也就有 f=μ∗F
定义:

然后有个性质:
从定义出发易证。互逆的两个函数卷起来是单位元。
- φ∗1=id ,然后 φ=μ∗id
由 φ∗1=id,且 μ∗1=e
得 φ∗1∗μ=id∗μ 即 φ=μ∗id
然后证一下 φ∗1=id
想了解可以参考 OI wiki
进入正题。
由 μ∗1=e 得 ∑d|nμ(d)=[n=1]
因为 [n|m][n/m=1]=[n=m]
所以有 [n|m]∑d|(n/m)μ(d)=[n=m] (因为只有当n=1的时候这个玩意才满足)
可以这么转换。
- ∑d|(i,j)μ(d)=[(i,j)=1]
因为 ∑d|(i,j)μ(d)=e(gcd(i,j)),易证
然后你肯定是要会算莫比乌斯函数的,开筛!
这个我们之前的博客中有,于是不多说了。筛
- F(n)=∑d|nf(d)⇔f(n)=∑d|nμ(d)F(n/d)
本质还是
F=1∗f⇔f=F∗I−1⇔f=F∗μ
用来计算形如 ∑ni=1f(i)g(⌊ni⌋) 的和式。
我们再单独来讲这个 数论分块
我们推个式子:
ans=∑ni=1∑mj=1[(i,j)=1]
=∑ni=1∑mj=1∑d|(i,j)μ(d)
=∑min{n,m}d=1μ(d)∑nd|i∑md|j1
=∑min{n,m}d=1μ(d)⌊n/d⌋⌊m/d⌋
这个式子我们可以 O(n) 的算。
接下来我们用数论分块处理,达到 O(√n)
总之莫反的题就是分为反演和分块,学懂了还是挺套路的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探