狄利克雷卷积和莫比乌斯反演初探

0. 前置知识

瞅这

1. 狄利克雷卷积

定义

定义域为 N+ 的函数称为数论函数。

对于两个数论函数 f,g,其狄利克雷卷积为 h(n)=dnf(d)g(nd)=ab=nf(a)g(b),简记为 h=fg

性质

狄利克雷卷积具有以下性质:

交换律fg=gf

非常好感性理解,因为狄利克雷卷积是对称的。

证明:令 x=b,y=a,则(fg)(n)=ab=nf(a)g(b)=ba=ng(b)f(a)=xy=ng(x)f(y)=(gf)(n)

fg=gf

从这个证明可以得出,对于一般的卷积 (fg)(n)=ab=nf(a)g(b),若 运算满足交换律,则 fg 满足交换律。

结合律(fg)h=f(gh)

证明:

((fg)h)(n)=cn(fg)(nc)h(c)=cnab=ncf(a)g(b)h(c)=cn(ab)c=nf(a)g(b)h(c)

此时 cn 在第二个条件成立时一定成立。

=(ab)c=nf(a)g(b)h(c)=a(bc)=nf(a)g(b)h(c)=(f(gh))(n)

同交换律一样,若 具有结合律,则其对应的卷积也具有结合律。

分配律(f+g)h=fh+gh

证明:

((f+g)h)(n)=ab=n(f+g)(a)h(b)=ab=nf(a)h(b)+g(a)h(b)=ab=nf(a)h(b)+ab=ng(a)h(b)=(fh)(n)+(gh)(n)

(f+g)h=fh+gh

等式的性质f=gfh=gh,其中 h(1)0

f=gfh=gh 显然,下证:f=gfh=gh

证明:

考虑反证法。若 fg,则必定存在一个 yN+,使得 i<y,f(i)=g(i),且 f(y)g(y)

r=fhgh=(fg)h

则:

r(y)=d|y(f(d)g(d))h(nd)=(f(y)g(y))h(1)0

r(y)=(fh)(y)(gh)(y)=0 矛盾。

证毕。

注:由于逆元存在,该结论是显然的。

单位元:即单位函数 ε(x)=[x=1] ,满足对于任意数论函数 f,有 fε=f

逆元:对于任意数论函数 f 满足 f(1)0,则存在数论函数 g 满足 fg=ε

显然,若逆元存在,必唯一。

考虑构造一个 g(fg)(x)=ε(x)

(fg)(n)=dnf(d)g(nd)=dn,d1f(d)g(nd)+g(n)f(1)g(n)=ε(n)dn,d1f(d)g(nd)f(1)

特别地,当 f 为积性函数时,f(1)=1,此时 g(n)=ε(n)dn,d1f(d)g(nd)

为了简便,下将 f 的逆元记为 f1。(区别于反函数)

2. 积性函数

定义

若数论函数 f(x) 满足 f(1)=1,且 n,mN,gcd(n,m)=1,f(nm)=f(n)f(m),则称 f(x) 是积性函数。

若数论函数 f(x) 满足 f(1)=1,且 n,mN,f(nm)=f(n)f(m),则称 f(x) 是完全积性函数。

常见的积性函数有:

  • 单位函数 ε(x)=[x=1] (完全积性)
  • 常函数 1(x)=1(完全积性),为方便起见,用 I 替代。
  • 恒等函数 idk(x)=xk(完全积性)(id0=I)
  • 除数函数 σk(x)=d|xdk,其中 σ0(x)x 的约数个数,又记作 τ(x)σ1(x)x 的约数和,简记为 σ(x)。(σk=idk I
  • 莫比乌斯函数 μ(x)={1x=10d>1,d2x(1)ω(x)otherwise,其中 ω(x)x 中不同质因子的个数。(μI=ε
  • 欧拉函数 φ(x)=i=1n[gcd(i,n)=1]1x 中与 x 互质的数的个数。(φ=μidφI=id

notes:

  • μI 的卷积逆,这在下面也会提到。
  • x=i=1kpiαi,其中 i,αi>0 ,则 φ(x)=xi=1k(11pi)τ(x)=i=1k(αi+1)σ(x)=i=1kj=0αipij,都可以用积性在得出质数幂的结果后推出。

性质

  1. f(x),g(x) 为积性函数,则下列函数为积性函数:
  • h(x)=f(xk)

证明:设 gcd(x,y)=1,则有 gcd(xk,yk)=1,则 h(x)h(y)=f(xk)f(yk)=f((xy)k)=h(xy)

  • h(x)=fk(x)

证明:设 gcd(x,y)=1,则有,则 h(x)h(y)=fk(x)fk(y)=(f(x)f(y))k=fk(xy)=h(xy)

  • h(x)=f(x)g(x)

证明:设 gcd(x,y)=1,则h(x)h(y)=f(x)f(y)g(x)g(y)=f(xy)g(xy)=h(xy)

  1. f(x),g(x) 为积性函数,则下列函数为积性函数:(重要)
  • h=fg

证明:设 gcd(x,y)=1,则

h(x)h(y)=d1xf(d1)g(xd1)d2yf(d2)g(yd2)=d1x,d2yf(d1)f(d2)g(d1)g(d2)=d1x,d2yf(d1d2)g(xyd1d2)=dxy  d1x,d2y,d1d2=df(d)y(xyd)=dxy1f(d)y(xyd)=dxyf(d)y(xyd)=h(xy)

  • g 满足 fg=ε

证明:g(x)=ε(x)d|x,d1f(d)g(xd)

gcd(x,y)=1,xy

首先,ε(1)=f(1)g(1)=1,f(1)=1g(1)=1

使用数学归纳法。

  1. xy=1,此时 g(xy)=g(1)=g(x)g(y)

  2. xy>1,此时 ε(xy)=ε(x)ε(y)=0,若此时 xy<xy(x,y)=1 ,g(xy)=g(x)g(y)

g(x)g(y)=g(x)g(y)ε(x)ε(y)=g(x)g(y)axf(a)g(xa)byf(b)g(yb)=f(1)f(1)g(x)g(y)ax,byf(a)g(xa)f(b)g(yb)=(ax,byf(a)g(xa)f(b)g(yb)f(1)f(1)g(x)g(y))=ax,by,ab1f(a)g(xa)f(b)g(yb)=ax,by,ab1f(ab)g(xyab)=ε(xy)dxy,d1f(d)g(xyd)=g(xy)

证毕。

由上述结论可知,积性函数卷积性函数仍是积性函数,积性函数卷非积性函数是非积性函数。

3. 莫比乌斯反演

莫比乌斯函数公式推导

莫比乌斯函数 μ 定义为常量函数 I 的逆。

显然,μ 是积性函数(见上一节末)。

由逆元公式有 μ(x)=ε(x)dx,dxμ(d)

x=1 时,μ(1)=1

x1 时,μ(x)=dx,dxμ(d)

(i) pPμ(p)=μ(1)=1
(ii) x=pk(k2),由归纳法可知 μ(x)=0

由于 μ 是积性函数,所以我们可以对 x 标准分解后将其 μ 值相乘。

x=p1α1p2α2pkαkμ(x)=μ(piαi)

μ(x)={1x=10d>1,d2x(1)ω(x)otherwise

这个 μ 可以线性筛筛出来。

莫比乌斯反演公式

形式一:(最本质的式子)

由于 μI=ε

dnμ(d)=[n=1]

形式二:

f(n)=dng(d),则 g(n)=dnμ(d)f(nd)

证明:这个很显然。f=gIfμ=g

和式证明:

g(n)=dng(d)cndμ(c)=cnμ(c)dncg(d)=cnμ(c)f(nc)

形式三:

f(n)=ndg(d),则 g(n)=ndμ(dn)f(d)

这里的和式可以有上限,即只考虑 lim 的数。

证明:

g(n)=ndg(d)ddnμ(d)=ndg(d)nc,cdμ(cn)=ncμ(cn)dcg(c)=ncμ(cn)f(c)

4.基础应用

莫比乌斯反演的题目常与整除分块同时出现。

例一

i=1nj=1m[(i,j)=1]

i=1nj=1m[(i,j)=1]=i=1nj=1md(i,j)μ(d)=d=1min(n,m)μ(d)i=1nj=1m[di][dj]=d=1min(n,m)μ(d)ndmd

对于多组询问,可以预处理 μ 之和,然后用整除分块做到 O(n+Tn) 的复杂度。

例二

φ(n)

考虑到 φ(n)=i=1n[(n,i)=1]

φ(n)=i=1nd(n,i)μ(d)=dnμ(d)i=1n[di]=dnμ(d)nd=(μid)(n)

例三

i=1nj=1m(i,j)

i=1nj=1m(i,j)=d=1ndi=1ndμ(i)ndimdi=d=1nddinμ(id)nimi=i=1ndidμ(id)nimi=i=1nφ(i)nimi

可以发现,这个式子与例一的区别在于将 μ 换成了 φ

例四

P2568 GCD

其实可以直接用 φ 做,但我们假装不能

答案为

pPni=1n/pμ(i)npi2

用整除分块优化,单次复杂度 O(np)

总复杂度 O(np1p)

视为均匀分布,复杂度 O(n1lnni=1n1i)=O(nlnn)

例五

P2257 YY的GCD

就是例四的多组询问版本。
考虑继续推式子。

pPni=1n/pμ(i)npimpi=pPnpinμ(ip)nimi=i=1nnimipi,pPμ(ip)

令后面的东西为 f(i),则只需求出后面即可。
然后 f(i) 可以像埃筛一样处理。
整除分块即可。
复杂度 O(nloglogn+Tn)

例六

P1829 [国家集训队]Crash的数字表格 / JZPTAB

i=1nj=1m[i,j]=i=1nj=1mij(i,j)=d=1ni=1nj=1mijd[(i,j)=d]=d=1ni=1ndj=1mdijd[(i,j)=1]=d=1ni=1ndj=1mdijdt(i,j)μ(t)=d=1ndt=1ndμ(t)t2i=1ndtj=1mdtij

g(x,y)=i=1nj=1mij=n(n+1)2m(m+1)2

d=1ndt=1ndμ(t)t2i=1ndtj=1mdtij=d=1ndtt=1ndμ(t)tg(ndt,mdt)=d=1ndTnTμ(Td)Tdg(nT,mT)=T=1nTdTnμ(d)dg(nT,mT)

f(n)=dnμ(d)d

T=1nTdTnμ(d)dg(nT,mT)=d=1ndf(d)g(nd,md)

由于 h(x)=μ(x)x 是积性函数,所以 f=hI 也是积性函数,可以线性筛预处理。

整除分块可做到 O(Tn) 多组询问。

例七

i=1nμ2(i)

所求即为 1n 中无平方因子数个数。

f(i) 表示 maxd2id2

答案即为 i=1n[f(i)=1]=i=1ndf(i)μ(d)

考虑到若 μ(d)0,则 d2f(i),而这等价于 d2i

改写为 d=1nμ(d)nd2

d 的有效上界 n

5.一些有用结论

  • μ(xy)=μ(x)μ(y)[xy]

证明:显然。

  • dnφ(d)=n

证明:即 φI=id,可由 φ=μid 推出。
有人叫这个式子欧拉反演。
应用太广泛,不列了。

  • i=1nd(i)=i=1nni

证明:

i=1nd(i)=i=1nj=1i[ji]=j=1ni=jn[ji]=i=1nni

见于 P3935 Calculating

note: 注意到该式可以反向运用,用 O(1)i=1nni,优于整除分块的 O(n)

  • d(xy)=ixjy[ij]

证明:考虑构造双射 d(u,v)

对于 d=i=1kpici,如果 x 中有 piaiy 中有 pibi

  • ciai 时,令 vpi 次数为 0
  • ci>ai 时,令 upi 次数为 0,并让 vpi 次数为 ciai

见于 P3327 [SDOI2015]约数个数和

  • φ(xy)=φ(x)φ(y)gcd(x,y)φ(gcd(x,y))

证明:考虑当 xy 时,φ(xy)=φ(x)φ(y)

而对于 (x,y)>1 的情况,(x,y) 中的每个质因子 p 都被多乘了 (11p),一共被多乘了 φ(gcd(x,y))gcd(x,y),所以除掉这一项就好了。
见于 P4240 毒瘤之神的考验

6.结语

本文鸽了有接近半年,终于写完了。(你看发布时间很晚实际上是因为我把它修改了,企图掩盖是鸽子的事实

删掉标题的“施工中”三个字时,有些怅然。时间过得太快了,水平尚未见增长,一个学期就过去了。开学时立下的雄心壮志,早已被时间消磨干净了吧……

建议同时阅读整除分块相关内容。

posted @   pref_ctrl27  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示