莫比乌斯反演学习笔记

莫比乌斯反演学习笔记

前言

之前学了一遍,只学了朴素的莫比乌斯反演,现在第二次面对不知道能否有所长进。

性质

莫比乌斯反演是数论中的重要内容。对于一些函数 \(f(n)\),如果难以直接求出它的值,但容易求得其倍数和或约数和 \(g(n)\),那么可以通过莫比乌斯函数反演简化运算,从而求得 \(f(n)\) 的值。

前置知识

数论分块+狄利克雷卷积。

莫比乌斯函数

\(\mu\) 为莫比乌斯函数,定义为:

\[\mu(n)= \begin{cases} 1&n=1\\ 0&n\text{ 含有平方因子}\\ (-1)^k&k\text{ 为 }n\text{ 的本质不同质因子个数}\\ \end{cases} \]

即对于 \(n=\prod p_i^{\alpha_i}\)

\[\mu(n)= \begin{cases} 1&n=1\\ 0&\exists \alpha_i\ge 2\\ (-1)^i&\forall\alpha_i=1\\ \end{cases} \]

容易看出,莫比乌斯函数是积性函数,同时满足以下性质:

\[\sum_{d|n}\mu(d)=\begin{cases} 1&n=1\\ 0&n\ne 1 \end{cases} \]

求解

由于莫比乌斯函数是积性函数,所以可以采用线性筛求解。

代码

void get_miu(int N){
	miu[1]=1;
	for(int i=2;i<=N;i++){
		if(!vis[i]){
			p[++cnt]=i;
			miu[i]=-1;
		}
		for(int j=1;p[j]<=N/i;j++){
			vis[i*p[j]]=1; 
			if(i%p[j]==0)break;//说明其含有平方因子,不做处理
			else miu[i*p[j]]=-miu[i];//否则根据积性函数的性质求解
		}
	}
    return ;
}

莫比乌斯变换

有以下两种形式,即文章开头提及的约数和和倍数和的形式。

约数和:如果 \(F(n)=\sum_{d|n}f(d)\),那么 \(f(n)=\sum_{d|n}\mu(\frac{n}{d})F(d)\)

倍数和:如果 \(F(n)=\sum_{n|d}f(d)\),那么 \(f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)\)

posted @ 2024-04-02 21:15  DycIsMyName  阅读(12)  评论(0编辑  收藏  举报