莫比乌斯函数定义和相关性质
对于数 n,设其质因数分解的结果为 n=p1q1×p2q2×⋯×pkqk,定义对于 n 的莫比乌斯函数 μ(n)=⎩⎨⎧10(−1)kn=1∃x∈[1,k],qx>1otherwise。
即,如果 n=1,那么 μ(n)=1,若存在 qi>1,那么 μ(n)=0,否则 μ(n)=(−1)k。
举个例子,6=2×3,k=2,那么 μ(6)=(−1)2=1,而 24=23×3,3>1,则 μ(24)=0。
比较实用的性质:d∣n∑μ(d)={10n=1n=1。
莫比乌斯反演
考虑两个函数 F(n) 和 f(n),并且满足等式 F(n)=d∣n∑f(d)。那么有 f(n)=d∣n∑μ(d)×F(dn)。
证明:
d∣n∑μ(d)×F(dn)=d∣n∑μ(d)×d′∣dn∑f(d′)=d′∣n∑f(d′)×d∣d′n∑μ(d)。
根据第一部分的性质,当且仅当 d′=n 时,d∣d′n∑μ(d)=1,可以得到式子等于 f(n)。
例题
由于 d(nm)=i∣n∑j∣m∑[gcd(i,j)=1]。
所以原式可以化成:
i=1∑nj=1∑md(i,j)=i=1∑nj=1∑mk∣i∑p∣j∑[gcd(k,p)=1]=i=1∑nj=1∑mk∣i∑p∣j∑d∣gcd(k,p)∑μ(d)=i=1∑nj=1∑md=1∑min(n,m)μ(d)k∣i∑p∣j∑[d∣k]×[d∣p]=d=1∑min(n,m)μ(d)d∣k∑d∣p∑⌊kn⌋×⌊pm⌋=d=1∑min(n,m)μ(d)x=1∑⌊dn⌋y=1∑⌊dm⌋⌊xdn⌋⌊ydm⌋=d=1∑min(n,m)μ(d)×(x=1∑⌊dn⌋⌊xdn⌋)×(y=1∑⌊dm⌋⌊ydm⌋)。
可以发现最后的右边两个式子形式相同,均为 x=1∑p⌊xp⌋。容易发现这个东西可以数论分块预处理。
于是令函数 f(x)=i=1∑x⌊ix⌋。
那么原式等于 d=1∑min(n,m)μ(d)×f(⌊dn⌋)×f(⌊dm⌋)。数论分块即可。
代码。
题意:给定 n,m,求 i=1∑nj=1∑mlcm(i,j) 对 20101009 取余的结果。
以下假设 n≤m,n>m 交换即可。
考虑推式子:
i=1∑nj=1∑mlcm(i,j)=i=1∑nj=1∑mgcd(i,j)ij=d=1∑ni=1∑nj=1∑mdij[gcd(i,j)=d]=d=1∑ni=1∑⌊dn⌋j=1∑⌊dm⌋ijd[gcd(i,j)=1]=d=1∑ni=1∑⌊dn⌋j=1∑⌊dm⌋ijdx∣gcd(i,j)∑μ(x)=d=1∑ndx=1∑⌊dn⌋μ(x)i=1∑⌊dn⌋j=1∑⌊dm⌋ij[x∣gcd(i,j)]=d=1∑ndx=1∑⌊dn⌋μ(x)xa=1∑⌊dn⌋xb=1∑⌊dm⌋x2ab=d=1∑ndx=1∑⌊dn⌋μ(x)x2xa=1∑⌊dn⌋axb=1∑⌊dm⌋b。
容易发现后面两项是等差数列,而 μ(x)x2 可以预处理,枚举 d 后对 x 数论分块即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现