算术函数
定义
定义域为正整数、函数值为复数的函数叫算术函数,即映射f:\N\to\C。
例如:
0(n)=01(n)=1δ(n)={10n=1n≥2
算术函数间的运算
- 相加:(f+g)(n)=f(n)+g(n)
- 相乘:(f⋅g)(n)=f(n)⋅g(n)
- 狄利克雷卷积:(f⊗g)(n)=∑d∣nf(d)g(dn)=∑d∣nf(dn)g(d)
卷积的性质:
- 交换律:f⊗g=g⊗f
- 结合律:(f⊗g)⊗h=f⊗(g⊗h)
- 分配律:f⊗(g+h)=f⊗g+f⊗h
- 单位元δ:f⊗δ=f=δ⊗f
- 逆元:对于f,∃f−1使得f⊗f−1=δ
莫比乌斯函数与反演
定义
μ(n)=⎩⎪⎪⎨⎪⎪⎧1(−1)k0n=1n=p1×p2×⋯×pk∃p满足p2∣n
性质
结论1:∑d∣nμ(d)=δ
证明:
设s为n的质因子个数,w(x)为x的质因子个数
令rad(n)为n的所有质因子之积,即若n=p1k1×p2k2×⋯×psks,则rad(n)=p1×p2×⋯×ps
当n=1时,∑d∣1μ(d)=μ(1)=1
当n>1时,
d∣n∑μ(d)=d∣rad(n)∑μ(d)=i=1∑sd∣rad(n),w(d)=i∑μ(d)=i=1∑s(is)(−1)i=i=1∑s(is)⋅1i⋅(−1)s−i=(1−1)s=0
推论:LHS=μ⊗1,RHS=δ,∴μ⊗1=δ,μ−1=1
结论2(反演定理):
- 若g(n)=∑d∣nf(d),则f(n)=∑d∣nμ(d)g(dn)
- 若f(n)=∑d∣nμ(d)g(dn),则g(n)=∑d∣nf(d)
即g=f⊗1⟺f=g⊗μ
证明:
- RHS=μ⊗g=μ⊗(1⊗f)=(μ⊗1)⊗f=δ⊗f=f=LHS
- RHS=f⊗1=(g⊗μ)⊗1=g⊗(μ⊗1)=g⊗δ=g=LHS
莫比乌斯反演例题
基本套路
莫比乌斯反演题目是有转换套路的,一般只会用上述结论1,少数情况才会用结论二。
例:给定n,m,d,求∑i=1n∑j=1m[gcd(i,j)=d]
分析:
首先需要把[gcd(i,j)=d]化为我们熟悉的形式。我们有δ(n)=[n=1],那么考虑将[gcd(i,j)=d]化为[gcd(di,dj)=1],于是原式=∑i=1n∑j=1m[gcd(di,dj)=1],当且仅当i,j是d的倍数时才会有意义。于是又转化为原式=∑x=1⌊dn⌋∑y=1⌊dm⌋[gcd(x,y)=1]。
转化后就可以带入性质1(μ⊗1=δ)了,将后面的部分替换,可得到原式=∑x=1⌊dn⌋∑y=1⌊dm⌋∑z∣x,yμ(z)(这里z为前面gcd(x,y)的值),接下来需要交换和号,即原式=∑z=1min(n,m)μ(z)∑x=pz⌊dn⌋∑y=qz⌊dm⌋1,注意到后面∑x=pz⌊dn⌋∑y=qz⌊dm⌋1是可以直接计算的,其等价于x,y的所有取值数对中x,y均为z的倍数的数对个数,所以∑x=pz⌊dn⌋∑y=qz⌊dm⌋1=⌊dzn⌋⋅⌊dzm⌋。
我们已经得到了原式=∑z=1min(n,m)⌊dzn⌋⋅⌊dzm⌋,莫比乌斯反演已经转化完了。接下来是计算过程,需要用到数论分块。z的取值一定能分为很多块,使得每块中⌊dzn⌋和⌊dzm⌋都相同。这样的块一定不会超过n+m个,对于每个块,我们直接用后面乘式的积乘块大小得到贡献,然后每次用左端点取值找右端点即可。复杂度O(n+m)。
总结上述基本套路:
- 将和式的一部分转化为[x=1]的形式,并将∑d∣nμ(d)=[n=1]带入
- 将含μ的部分提到前面,并重新确定枚举的约数条件(易错)
- 观察μ后面的部分,找方法将其计算出来(直接算或预处理)
- 进行数论分块,对于每块用直接乘每个枚举量贡献或预处理前缀和求解
预处理积性函数
基本套路中,1,2,4条显然是很死板的,而3灵活一些。如果μ后面的部分较为复杂,我们不能直接求值,那么如何计算呢?
积性函数:若数论函数f满足对于所有gcd(a,b)=1,均有f(a×b)=f(a)×f(b),则称作积性函数。
完全积性函数:若数论函数f满足∀a,b,f(a×b)=f(a)×f(b),则称作完全积性函数。
我们将μ后面的部分分为一个或多个积性函数,若为完全积性函数则更好。分gcd(a,b)是否为1推导一下f(a×b)的表达式,即可用线性筛线性预处理。
例:BZOJ2820 YY的GCD
积式中的莫比乌斯反演
有时,莫比乌斯反演会存在于积式中,作为底数或指数出现。
若为底数,则可以直接反演后计算,与和式中的方法类似。
若为指数,则会较为复杂。反演后将以莫比乌斯函数为指数的部分分离出来,想办法预处理其前缀积。
例:BZOJ4816【SDOI2017】数字表格
题目汇总
热身题
BZOJ1101【POI2007】Zap
BZOJ2190【SDOI2008】仪仗队
BZOJ2671 Calc
常规题
BZOJ2820 YY的GCD
BZOJ2154 Crash的数字表格
BZOJ2693 jzptab
BZOJ3309 DZY Loves Math
BZOJ4407 于神之怒加强版
进阶题
BZOJ3994【SDOI2015】约数个数和
CF235E Number Challenge
BZOJ4816【SDOI2017】数字表格
BZOJ4174 tty的求助