莫比乌斯反演

更新日志 2025/01/24:开工。

莫比乌斯函数

定义与性质

莫比乌斯函数,记作 \(\mu\)

首先,我们知道一个数可以用如下方式表示:

\[d=\sum_{i=1}^k p_i^{b_i} \]

然后 \(\mu\) 的定义为:

\[\mu(d)=\begin{cases} 1,d=1\\ 0,\exist b_i\ge2\\ (-1)^k,d\ne1\land\forall b_i=1 \end{cases} \]

不难发现它实际上就是一个容斥系数。

我们在这里给出一个莫比乌斯反演会用到的性质:

\[\forall n\in Z^*,\sum_{d\mid n}\mu(d)=[n=1] \]

可以自己推导一下。这同样表明了 \(\mu\) 是一个质因数的容斥系数。

线性筛莫比乌斯函数

  • 如果当前数是质数,根据定义,\(\mu(p)=1\)
  • 对于 \(i\cdot p\),有几种情况需要讨论:
    • \(i\mid p\),那么 \(\exist b_{i\cdot p}\ge2\)\(\mu(i\cdot p)=0\)
    • \(i\nmid p\),这时候我们需要分讨是否 \(\exist b_i\ge2\),但事实上,我们可以直接 \(\mu(i\cdot p)=-\mu(i)\)
int pcnt;
bool st[N],pr[N],mu[N];
void getmu(int n){
	mu[1]=1;
	rep(i,2,n){
		if(!st[i]){pr[++pcnt]=i;mu[i]=-1;}
		for(int j=1;i*pr[j]<=n;j++){
			st[i*pr[j]]=1;
			if(i%pr[j]==0)break;
			else mu[i*pr[j]]=-mu[i];
		}
	}
}

莫比乌斯反演

\(F(x)\)\(f(x)\) 是定义在非负整数集上的两个函数:

\[\text{if }F(n)=\sum_{d\mid n}f(d)\\ f(n)=\sum_{d\mid n}\mu(d)F(\frac{n}{d}) \]

证明:

\[\begin{align*} &\sum_{d\mid n}\mu(d)F(\frac{n}{d})\\ =&\sum_{d\mid n}[\mu(d)\sum_{i\mid\frac{n}{d}}f(i)]\\ =&\sum_{i\mid n}[f(i)\sum_{d|\frac{n}{i}}\mu(d)]\\ =&f(n) \end{align*} \]

以及另一种形式:

\[\text{if }F(n)=\sum_{n\mid d}f(d)\\ f(n)=\sum_{n\mid d}\mu(\frac{d}{n})F(d) \]

证明:
上面是已知 \(F\) 与其约数 \(f\) 的关系,这里已知 \(F\) 与其倍数 \(f\) 的关系,感性理解一下这两个式子其实是等价的。
可以通过下面这个式子加深记忆:(不是证明过程)

\[f(n)=\sum_{k\in Z^*}\mu(k)F(nk) \]

是不是感觉就和上面的第一个式子有形式相反的感觉了?

例题

有时间多补一点吧。

posted @   LastKismet  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示