数论函数相关

一、欧拉函数与积性函数

欧拉函数

  • 定义:欧拉函数 φ(n) 表示小于等于 n,且与 n 互质的正整数的个数。

  • 公式
    若在算数基本定理中,n=p1c1p2c2...pmcmp 为质数),则由容斥原理:

    φ(n)=np11p1p22p2...pmmpm=npn(11p)(pprimes)

    关于此公式的证明,读者可自行推导

一些性质

  1. n 是质数,则 φ(n)=n1

  2. n=pk,且 p 为质数,则 φ(n)=(p1)pk1

  3. p 是质数,且 {pnφ(nq)=φ(n)qpnφ(nq)=φ(n)(q1)

  4. n=dnφ(d)

  5. φ(ab)=φ(a)φ(b)dφ(d),其中 d=gcd(a,b)

积性函数

若一个定义在正整数域上的函数 f,当 x,y 互质时,有 f(xy)=f(x)f(y),则称函数 f积性函数

特别地,当 x,y 不互质时仍有 f(xy)=f(x)f(y) 的函数称为完全积性函数

常见完全积性函数:

  • ϵ(n)=[n=1]
  • I(n)=1
  • idk(n)=nk

常见积性函数

  • 欧拉函数 φ(n)
  • 莫比乌斯函数 μ=I1
  • 除数函数 σk(n)=dndk
  • 除数函数 d(n)= n 的约数个数
  • s(n)=n 所有约数的和

一些乘积结论

  • μ(ij)=[ij]μ(i)μ(j)

  • φ(ab)=φ(a)φ(b)dφ(gcd(a,b))

  • d(ij)=x|iy|j[xy]

  • σk(ij)=x|iy|j[xy](xjy)k

除数函数的计算

对于 n=p1c1p2c2pmcm,有:

  • d(n)=(c1+1)(c2+1)(cm+1)

    pn 的最小质因子,有:

    d(n)={2d(n/p)d(n/p2)p2n2d(n/p)otherwise

  • σk(n)=i=1m(1+pi+pi2++pici)

二、狄利克雷卷积

两个数论函数 f(x),g(x),则它们的 狄利克雷卷积 得到的结果 h(x) 定义为:

h(x)=dxf(d)g(xd)=ab=xf(a)g(b)

一些其它定义

  • 单位元ε(n)=[n=1]。对于任何数论函数 f,都有 fε=f

  • I(n)=1

  • id(n)=n

性质

  • 满足交换律、结合律、分配律

  • 积性:两个积性函数的狄利克雷卷积仍然是积性函数。积性函数的逆仍是积性函数

常见结论

  • μI=ε

  • φI=id

  • idμ=φ

三、莫比乌斯函数

I 的狄利克雷卷积逆元记为 μ,称作莫比乌斯函数

设正整数 n算数基本定理分解质因数为 n=p1c1p2c2pmcm,则

μ(n)={0i[1,m],ci>11m0(mod2),i[1,m],ci=11m1(mod2),i[1,m],ci=1

特别地,μ(1)=1

性质

  • 根据“积性函数的逆也是积性函数”可得:莫比乌斯函数是积性函数

整除分块

整除分块是用于解决整除求和问题 i=1nni

  • ni 按相同值分块

  • 可以证明,分块少于 2n

for(LL l=1,r; l<=n; l=r+1)
{
	r=n/(n/l);
	ans+=(r-l+1)*(n/l);
}

莫比乌斯反演

反演动机:

dnμ(d)=[n=1]

f(n),g(n) 为两个数论函数。

  • 如果有 f(n)=dng(d),那么有

    g(n)=dnμ(d)f(nd)

    证明:容易看出,数论函数 g(n) 的莫比乌斯变换,就是将g(n)1 进行狄利克雷卷积。
    f=gI
    fμ=gIμ=gε=g

  • 如果有 f(n)=n|dg(d),那么有

    g(n)=n|dμ(dn)f(d)

    证明:考虑逆推:
    n|dμ(dn)f(d)
    =k=1μ(k)f(kn)
    =k=1μ(k)kn|dg(d)
    =n|dg(d)k|dnμ(k)
    =n|dg(d)ϵ(dn)
    =g(n)

整除差分

一个黑科技

CF915G Coprime Arrays 为例

快进到式子:

ans(k)=d=1kμ(d)kdn

如果对每个 k 分别使用整除分块,复杂度 O(nn),无法通过

注意到 k/d(k1)/ddk,且此时 k/d=(k1)/d+1

对答案差分,有:

ans(k)ans(k1)=d=1kμ(d)kdnd=1k1μ(d)k1dn=d=1kμ(d)(kdnk1dn)=dkμ(d)[(kd)n(kd1)n]

线性筛出 idk 后,记 h(n)=nk(n1)k,则 Δans=hμ,时间复杂度 O(nlogn)

四、杜教筛

假设我们先现在希望求出函数 fn 处的前缀和 s(n)=i=1nf(i),我们构造另一个数论函数 g,设 h=fg,则

i=1nh(i)=ijnf(i)g(j)=d=1ng(d)i=1ndf(i)=d=1ng(d)s(nd)

g,h 的前缀和可快速求出,我们就得到了 s(n) 关于其所有整除值处取值的递推式,即

g(1)s(n)=i=1nh(i)d=2ng(d)s(nd)

一般 f,g 均为积性函数,因此 g(1)=1,公式又写为

s(n)=i=1nh(i)d=2ng(d)s(nd)

一般预处理 f 及其前缀和到 n23 处,复杂度优化为 O(n23)

P4213 【模板】杜教筛

题意:求 φ(i)μ(i)n231

对于 f=φ,构造 g=1fg=id

对于 f=μ,构造 g=1fg=ϵ

P3768 简单的数学题

发现自己欧拉反演和莫比乌斯反演都学的依托……

gcd(i,j) 作欧拉反演得 gcd(i,j)=dgcd(i,j)φ(d)

所以原式

=d=1nφ(d)×d2i=1n/dj=1n/dij

后面那坨可以直接计算,对它整除分块,只需快速求出前面那坨的前缀和。

f=φ×id2,构造 g=id2,那 fg=id3,可以使用杜教筛。时间复杂度大约 O(n23)

P6055 [RC-02] GCD

题意:求i=1nj=1np=1njq=1nj[gcd(i,j)=1][gcd(p,q)=1]

n2×109

有点厉害的题目。

推式子推不出来。于是观察一下原式。

于是惊人的发现 j 就是在枚举 gcd(p,q)

于是化为

i=1np=1nq=1n[gcd(i,p,q)=1]=d=1nμ(d)(nd)3

杜教筛即可。

五、贝尔级数

  • 定义:对于积性函数 f,定义其在质数 p 意义下的贝尔级数为

    Fp(x)=i=0+f(pi)xi

  • 定理:两个数论函数相狄利克雷卷积,其贝尔级数相乘。

较复杂的贝尔级数

  • idk11pkx

  • μ21+x

  • d1(1x)2(相当于 d=II

  • σk1(1x)(1pkx)(相当于 σk=Iidk

  • φ1x1px

posted @   xishanmeigao  阅读(23)  评论(0编辑  收藏  举报
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示