莫比乌斯反演(纯知识)

\(Update\:\:on\:\:2023.8.3\):精细修改了一些内容,改了下内容排版

\(Update\:\:on\:\:2023.8.4\):增加了整除差分

一、狄利克雷卷积

定义

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

\[h(x)=\sum\limits_{d\mid x}{f(d)g\left(\frac{x}{d}\right)}=\sum\limits_{ab=x}{f(a)g(b)} \]

一些其它定义

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

  • \(I(n)=1\)

  • \(id(n)=n\)

性质

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

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

常见结论

  • \(\mu * I=ε\)

  • \(\varphi *I=id\)

  • \(id * \mu =\varphi\)

二、莫比乌斯函数

定义

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

设正整数 \(n\)算数基本定理分解质因数为 \(n=p_1^{c_1}p_2^{c_2}\dots p_m^{c_m}\),则

\[\mu(n)=\begin{cases}0&\exists i\in [1,m],\:c_i>1\\1&m\equiv 0 \pmod 2,\:\forall i \in [1,m],\:c_i=1\\-1&m\equiv 1 \pmod 2,\:\forall i \in [1,m],\:c_i=1\end{cases} \]

特别地,\(\mu(1)=1\)

性质

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

计算

回顾 欧拉函数与积性函数专题,很明显莫比乌斯函数可以使用线性筛求解

void primes(int n)
{
	mu[1]=1;
	for(int i=2; i<=n; i++)
	{
		if(!v[i])
		{
			v[i]=i;
			prime[++tot]=i;
			mu[i]=-1;
		}
			
		for(int j=1; j<=tot; j++)
		{
			if(prime[j]>v[i] || prime[j]>n/i)
				break;
			v[i*prime[j]]=prime[j];
			if(i%prime[j]==0)
				break;
			mu[prime[j]*i]=-mu[i];
		}
	}
}

三、整除分块

整除分块是用于解决整除求和问题 \(\sum\limits_{i=1}^n{\left\lfloor\frac{n}{i}\right\rfloor}\)

  • \(\left\lfloor\frac{n}{i}\right\rfloor\) 按相同值分块

  • 可以证明,分块少于 \(2\sqrt{n}\)

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

四、莫比乌斯反演

反演动机

\[\sum\limits_{d\mid n}{\mu(d)}=[n=1] \]

结论

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

  • 如果有 \(f(n)=\sum\limits_{d\mid n}g(d)\),那么有

    \[g(n)=\sum\limits_{d\mid n}\mu(d)f(\frac{n}{d}) \]

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

  • 如果有 \(f(n)=\sum\limits_{n|d}g(d)\),那么有

    \[g(n)=\sum_{n|d}\mu(\frac{d}{n})f(d) \]

    证明:考虑逆推:
    \(\quad \sum\limits_{n|d}{\mu(\frac{d}{n})f(d)}\)
    \(=\sum\limits_{k=1}{\mu(k)f(kn)}\)
    \(= \sum\limits_{k=1}{\mu(k)\sum\limits_{kn|d}{g(d)}}\)
    \(=\sum\limits_{n|d}{g(d)\sum\limits_{k|\frac{d}{n}}{\mu(k)}}\)
    \(= \sum\limits_{n|d}{g(d)\epsilon(\frac{d}{n})}\)
    \(=g(n)\)

应用

关于莫反的习题,详见以后的博客

五、整除差分

一个黑科技

CF915G Coprime Arrays 为例

快进到式子:

\[ans(k)=\sum_{d=1}^k\mu(d)\left\lfloor\frac{k}{d}\right\rfloor^n \]

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

注意到 \(\left\lfloor k/d\right\rfloor\ne \left\lfloor (k-1)/d\right\rfloor\Leftrightarrow d\mid k\),且此时 \(\left\lfloor k/d\right\rfloor=\left\lfloor (k-1)/d\right\rfloor+1\)

对答案差分,有:

\[\begin{aligned}ans(k)-ans(k-1)&=\sum_{d=1}^k\mu(d)\left\lfloor\frac{k}{d}\right\rfloor^n-\sum_{d=1}^{k-1}\mu(d)\left\lfloor\frac{k-1}{d}\right\rfloor^n \\&=\sum_{d=1}^k\mu(d)\left(\left\lfloor\frac{k}{d}\right\rfloor^n-\left\lfloor\frac{k-1}{d}\right\rfloor^n\right)\\&=\sum_{d\mid k}{\mu(d)\left[\left(\frac{k}{d}\right)^n-\left(\frac{k}{d}-1\right)^n\right]} \end{aligned} \]

线性筛出 \(id_k\) 后,记 \(h(n)=n^k-(n-1)^k\),则 \(\Delta ans=h*\mu\),时间复杂度 \(O(n\log n)\)

posted @ 2023-08-07 07:38  xishanmeigao  阅读(45)  评论(0)    收藏  举报