现在开始天晴了!|

sunzz3183

园龄:5年2个月粉丝:10关注:25

莫比乌斯函数及其反演学习笔记

莫比乌斯函数及其反演学习笔记

——by sunzz3183


定义

μ(x){1x=1(1)kx=p1p2pk0otherwise

求法

  1. 直接求
inline int mu(int x){
	if(!x)return 0;
	if(x==1)return 1;
	int sum=0;
	for(int i=2;i*i<=x;i++)
		if(!(x%i))
			if(!(x/i%i))return 0;
			else sum++;
	return sum&1?-1:1;
}
  1. 线性筛
int cnt,prime[M],phi[N],mu[N];
bool is_p[N];
void init(int n){
    phi[1]=mu[1]=1;
    for(int i=2;i<=n;i++){
        if(!is_p[i])prime[++cnt]=i,phi[i]=i-1,mu[i]=-1;
        for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
            is_p[i*prime[j]]=1;
            if(!(i%prime[j])){
                phi[i*prime[j]]=phi[i]*prime[j];
                mu[i*prime[j]]=0;
                break;
            }
            phi[i*prime[j]]=phi[i]*(prime[j]-1);
            mu[i*prime[j]]=-mu[i];
        }
    }
}

(根据性质,很简单)

反演

式子 1

dnμ(d)=[n=1]

证明

  • n=1 时,则由于 d|nμ(d)=μ(1),成立。

  • n2 时:

P=p1p2pk,即要证明:

d|Pμ(d)=0

  • k=1 时:

d|Pμ(d)=d|p1μ(d)=μ(p1)+1=11=0

  • 现在设 t2 而当 k=1,,t1 时式子都成立,则

d|Pμ(d)=d|p1pt1μ(d)+pt|d|Pμ(d)=(1+μ(pt))d|p1pt1μ(d)=0

故当 k=t 时式子也成立。

由数学归纳法得,式子对于任意的整数 k 都成立。

现在令 n=p1c1pkck,由于当 d 能被质数的平方整除时 μ(d)=0 所以:

d|nμ(d)=d|nμ(P)=0

综上,原式成立。

式子 1.5

n=p1c1pkck 则:

dn|μ(d)|=2k

证明

类比上述证明,要证原式,即证(沿用上次定义的字母):

d|P|μ(d)|=2k

  • k=1 时有:

d|p1=1+|μ(p1)|=21

  • 现在设 t2 而当 k=1,,t1 时式子都成立,则

d|P|μ(d)|=d|p1pt1|μ(d)|+pt|d|P|μ(d)|=(1+|μ(pt)|)d|p1pt1μ(d)=2t

故当 k=t 时式子也成立。

由数学归纳法得,式子对于任意的整数 k 都成立。

式子 2

[gcd(i,j)=1]=dgcd(i,j)μ(d)

由式子 1 得

式子 3

i=1nj=1m[gcd(i,j)=1]=i=1nj=1md|gcd(i,j)μ(d)=i=1nd=1min(i,m)μ(d)min(i,m)d=d=1min(n,m)μ(d)ndmd

式子 4

例题 [POI2007]ZAP-Queries

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

我们可以转化和式子 3 一样的。

i=1nj=1m[gcd(i,j)=k]=i=1nkj=1mk[gcd(i,j)=1]=i=1nkj=1mkd|gcd(i,j)μ(d)=d=1min(n,m)kμ(d)nd×kmd×k

式子 5

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

转化成式子 4。

i=1nj=1m[gcd(i,j)x]=i=1nj=1mk=1x[gcd(i,j)=k]=k=1xi=1nj=1m[gcd(i,j)=k]=k=1xd=1min(n,m)kμ(d)nd×kmd×k

求法总结

线性筛 O(n) 求,然后直接求的话也会是 O(n),可以使用整数分块和前缀和来使时间优化到 O(n)

提高

应用

例 1

ϕ(n)=dnμ(d)nd

证明

即证明 ϕ=μIdId=Iϕ

ld=i=1nj=1n[gcd(i,n)=j]=j|ni=1nj[gcd(ij,n)=j]=j|ni=1nj[gcd(i,nj)=1]=j|nϕ(nj)=Iϕ

例 2

[SDOI2015] 约数个数和

d(x)x 的因数个数。

d(xy)=i|xj|y[gcd(i,j)=1]

证明

证明可以考虑映射,或者感性理解,每个质因子要被保证枚举 pxi+pyi 次,所以要 gcd(i,j)=1

例 3

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

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

d=1ndi=1ndj=1md[gcd(i,j)=1]ij

k=1nkd=1nkμ(d)d2i=1ndkj=1mdkij

T 替换 dk

T=1nTd|Tμ(d)di=1nTj=1mTij

f(T)=d|Tμ(d)d,这是一个积性函数,故原式子可以 O(n)

本文作者:sunzz3183

本文链接:https://www.cnblogs.com/sunzz3183/p/17189858.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   sunzz3183  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
Live2D
欢迎阅读『莫比乌斯函数及其反演学习笔记』
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起