莫比乌斯反演 学习笔记

前置知识

整除分块

把之前写的博客搬过来了

模型

\(\large\sum^{n}_ {i=1} \lfloor{\frac{n}{i}}\rfloor\)

假设 \(n\) 等于 10,我们可以列出下表:

\(\ i\) 1 2 3 4 5 6 7 8 9 10
\(\frac{10}{i}\) 10 5 3 2 2 1 1 1 1 1

如果我们的 \(n\) 更大时,我们可以发现 \(\frac{10}{i}\) 中有许多重复的地方。

我们可以将相同的分为一块,这样可以发现块不会超过 \(2\sqrt n\) 个。

证明
我们设当前块的值为 \(m\)
\(m\le \sqrt n\) 时,\(\frac nm\) 总共的个数,不会超过 \(m\) 的个数,因此最多有 \(\sqrt n\) 个块。
\(m> \sqrt n\) 时,\(\frac nm\) 的取值应该在 \([1,\sqrt n]\) 之间,因此也最多有 \(\sqrt n\) 个块。

综上,块的个数不超过 \(2\sqrt n\)

推导

我们需要找到每个块的左右端点,设我们已知这个块的左端点 \(l\),则考虑怎么找到右端点 \(r\)

设这个块的值为 \(x\),那么对于块中的每个数 \(i\),则有 \(x=\lfloor{\frac{n}{l}}\rfloor=\lfloor{\frac{n}{i}}\rfloor\)

那么 \(r=max(i)\),因为 \(i\times x\le n\),我们可以设 \(i\times x=n\) 以此来找到最大的 \(r\)

\(\large r=\lfloor{\frac{n}{x}}\rfloor=\bigl\lfloor{\frac{n}{\lfloor{n/l}\rfloor}}\bigl\rfloor\)

下一个块的 \(l'\) 就应该是 \(r+1\)

积性函数

定义:积性函数指对于所有互质的整数 \(a\)\(b\) 有性质 \(f(ab)=f(a)f(b)\) 的数论函数,且积性函数与积性函数的卷积还是积性函数。

一些常见的积性函数如:
\(1(n)=1\) 常数函数

\(ID(n)=n\) 单位函数

\(\epsilon(n)=[n==1]\) 单位元函数

\(d(n)=\displaystyle\sum_{d\mid n}1\)因子函数\(n\) 的正因子的个数。

\(\sigma(n)=\displaystyle\sum_\limits{d\mid n}d\)因子和函数\(n\) 的各个约数之和。

\(\varphi(n)=\displaystyle\sum^n_{i=1}[gcd(n,i)=1]\) 欧拉函数,表示比不大于 \(n\) 且与 \(n\) 互质的数的个数。

\(\mu(n)\) 莫比乌斯函数(等下会讲)

一些需要记得
\((\mu* 1)=\epsilon\)

\((\varphi* 1)=ID\)

\((\mu* ID)=\varphi\)

狄利克雷卷积

我们需要定义两个积性函数的一个运算符号:$* $ 狄利克雷卷积。

这名字听起来有点高深,不过你可以将它想象成一个定义新运算。

定义

两个数论函数 \(f\)\(g\) 的狄利克雷卷积为:$$(f* g)=\displaystyle\sum_{d\mid n} f(d)\times g(\frac{n}{d})=\displaystyle\sum_{d\mid n} f(d)\times g(\frac{n}{d})$$

性质

  • 交换律 \(f* g=g* f\)
  • 结合律 \(f* (g* h)=(f* g)* h\)
  • 分配律 \(f* h+g* h=(f+g)* h\)
  • 单位元 \(\epsilon * f=f\)
  • \((xf)* g=x(f* g)\)

前三个和乘法的运算法则一样,可以简单来记。至于证明,我们对于 \(f* g\),也就是遍历每两个 \(n\) 的对应约数在两个积性函数中的值之积,当我们跟换左右两边或者顺序的时候,每个约数的贡献不会发生改变。

莫比乌斯函数

莫比乌斯函数 \(\mu(x)\)定义是:

\[\mu(x)=\begin{cases}1&(x=1)\\0&(p^2\mid x)\\(-1)^{\omega(x)}&(\omega(x)\texttt{表示 x 的质因子个数})\end{cases} \]

也就是说,当 \(d=1\) 时,\(\mu(d)=1\)

\(d\) 有平方因子的时候,\(\mu(d)=1\)

\(d=\displaystyle\prod_{i=1}^k p_i\)\(p_i\) 为质数且互不相等时,则有 \(\mu(d)=(-1)^k\)

莫比乌斯函数也有很多有趣的性质

  • \(\displaystyle\sum_{d\mid n}\mu(d)=[n==1]\Rrightarrow \mu*I=\epsilon\)

证明
\(n=1\) 时,\(d\) 只能取 \(1\)\(\mu(d)=1\),成立;

\(n>1\) 时,我们可以不用考虑 \(\mu(d)=0\) 的情况,只需要考虑 \(\mu(d)\not=0\),也就是莫比乌斯函数定义的 \((-1)^{\omega(x)} (\omega(x)\texttt{表示 x 的质因子个数}\land p^2\not\mid x)\) 时需要统计贡献。

\(n=p_1^{c_1}p_2^{c_2}p_3^{c_3}\dots p_k^{c_k}\),则 \(d\) 的质因数个数是 \(j\) 情况一共有 \(\dbinom{j}{k}\) 种。

那么我们可以得到:

\[\begin{aligned}\sum_{d\mid n}&=\dbinom{0}{i}-\dbinom{1}{i}+\dbinom{2}{i}-\dots+(-1)^i\dbinom{i}{i}\\&=\sum^i_{j=0}(-1)^j\dbinom{j}{i}\end{aligned} \]

那么我们只需要说明:\(\sum^i_{j=0}(-1)^j\dbinom{j}{i}=0\)

这个东西就是裸的二项式定理(二项式定理:\((x+y)^j=\displaystyle\sum_{i=0}^n \dbinom{i}{j}x^{j-i}y^i\)

我们只要把 \(x\) 看作 1,\(y\) 看作 -1。

就可以得到:\(0^n=\displaystyle\sum_{i=0}^j \dbinom{i}{j}1^{j-i}(-1)^i=\displaystyle\sum_{i=0}^n \dbinom{i}{j}(-1)^i=0\)(之前分类讨论有条件 \(n>1\)

所以 \(\displaystyle\sum_{d\mid n}\mu(d)=[n==1]\)

  • \(\dfrac{\varphi(n)}{n}=\displaystyle\sum_{d\mid n}\frac{\mu(d)}{d}\)(等会会证明)

然后就是线性筛筛 \(\mu\)

void Get_mu(int x){
   	isprime[1]=1;
   	mu[1]=1;
   	for(int i=2;i<=x;i++){
		if(!isprime[i])
			prime[++tot]=i,mu[i]=-1;
		for(int j=1;j<=tot&&i*prime[j]<=x;j++){
			isprime[prime[j]*i]=1;
			if(i%prime[j]==0) break;//处理平方因子的情况,因为 i 里面有prime[j] 了,
//所以 $i*prime[j]$ 有平方因子,又由于 线性筛每个数只筛一个,那么不会有重复的情况,导致值不一样。
			mu[i*prime[j]]=-mu[i];
		}
	}
}

欧拉函数

欧拉函数的定义是:比不大于 \(n\) 且与 \(n\) 互质的数的个数,也就等于

\[\varphi(n)=\displaystyle\sum^n_{i=1}[gcd(n,i)=1] \]

计算方式:

\(\large n=p_1^{c_1}p_2^{c_2}p_3^{c_3}\dots p_k^{c_k}\),

\[\varphi(n)=n\prod_{i=1}^k(1-\frac 1 p) \]

性质

  • \(n=p^k\)\(p\) 为质数) 时,\(\varphi(n)=p^k-p^{k-1}\)

证明
因为 \(n=p^k\),所以 \(n\) 只有一个质因数,那么有计算方式可知:

\[\varphi=p^k\times(1-\frac 1 p)=p^k-p^{k-1} \]

  • \(\sum_{d\mid n}\varphi(d)=n\)

证明
设 $$f(n)=\sum_{d\mid n}\varphi(d)$$

首先我们需要证明 \(f(n)\) 为一个积性函数。

\[\begin{aligned}&f(n)\times f(m)(\gcd(n,m)=1)\\&=\sum_{i\mid n}\varphi(i)\times \sum_{j\mid m}\varphi(j)\\&=\sum_{i\mid n}\sum_{j\mid m}\varphi(i)\times\varphi(j)\\&=\sum_{i\mid n}\sum_{j\mid}\varphi(i\times j)\\&=\sum_{d\mid nm}\varphi(d)\\&=f(nm)\end{aligned} \]

然后 \(f\) 就为一个积性函数。

然后因为 \(n=p_1^{c_1}p_2^{c_2}p_3^{c_3}\dots p_k^{c_k}\),则 \(f(n)\) 就可以为 \(f(n)=f(p_1^{c_1})\times f(p_2^{c_2})\times f(p_3^{c_3})\times \dots\times f(p_k^{c_k})\)

\(\begin{aligned}f(p^c)&=\sum_{d\mid n}\varphi(d)\\&=\varphi(1)+\varphi(p)+\varphi(p^2)+\dots+\varphi(p^k)\\&=1+(p-1)+(p^2-p)+\dots+(p^k-p^{k-1})\\&=p^k\end{aligned}\)
\(f(n)=f(p_1^{c_1})\times f(p_2^{c_2})\times f(p_3^{c_3})\times \dots\times f(p_k^{c_k})=p_1^{c_1}p_2^{c_2}p_3^{c_3}\dots p_k^{c_k}=n\)

即 $$\sum_{d\mid n}\varphi(d)=n$$
关于莫比乌斯函数的一个性质证明

然后我们也可以把它表示为狄利克雷卷积的形式:

\[\varphi*1=ID \]

然后我们将它左右两边同时卷上一个 \(\varphi\)

由于我们知道:

\[\because(\mu*1)=\epsilon \]

\[\therefore\varphi*1*\mu=ID*mu \]

\[\therefore \varphi*\epsilon=ID*\mu \]

\[\therefore \varphi=ID*\mu \]

\[\therefore \varphi(n)=\displaystyle\sum_{d\mid n}\mu(d)\times \frac{n}{d} \]

两边同时除以 \(n\) 我们就能得到:$$\dfrac{\varphi(n)}{n}=\displaystyle\sum_{d\mid n}\frac{\mu(d)}{d}$$(上面莫比乌斯函数的性质二就得到证明了)。

莫比乌斯反演

定理:若 \(F(n)\)\(f(n)\) 是两个定义在非负整数集合上的两个积性函数,且满足条件:

\[F(n)=\displaystyle\sum_{d\mid n}f(d) \]

那么有结论:

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

证明

因为我们知道

\[F(n)=\displaystyle\sum_{d\mid n}f(d) \]

那么可以将这个式子表示为:

\[F=f*I \]

想欧拉函数中的式子一样再将左右两边同时卷上 \(\mu\),可得:

\[\because F*\mu=f*1*\mu \]

\[\therefore F*\mu=f*\epsilon=f \]

\[\therefore f(n)=\displaystyle\sum_{d\mid n}\mu(d)F(\lfloor{\frac{n}{d}}\rfloor) \]

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

完结散花。

posted @ 2023-10-11 14:30  bhbjzyh  阅读(11)  评论(0编辑  收藏  举报