莫比乌斯反演 学习笔记
前置知识
整除分块
把之前写的博客搬过来了
模型
求 \(\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)\) 的定义是:
也就是说,当 \(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}\) 种。
那么我们可以得到:
那么我们只需要说明:\(\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\) 互质的数的个数,也就等于
计算方式:
设 \(\large n=p_1^{c_1}p_2^{c_2}p_3^{c_3}\dots p_k^{c_k}\),
则
性质:
- 当 \(n=p^k\)(\(p\) 为质数) 时,\(\varphi(n)=p^k-p^{k-1}\)
证明:
因为 \(n=p^k\),所以 \(n\) 只有一个质因数,那么有计算方式可知:
- \(\sum_{d\mid n}\varphi(d)=n\)
证明:
设 $$f(n)=\sum_{d\mid n}\varphi(d)$$
首先我们需要证明 \(f(n)\) 为一个积性函数。
然后 \(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\)。
由于我们知道:
两边同时除以 \(n\) 我们就能得到:$$\dfrac{\varphi(n)}{n}=\displaystyle\sum_{d\mid n}\frac{\mu(d)}{d}$$(上面莫比乌斯函数的性质二就得到证明了)。
莫比乌斯反演
定理:若 \(F(n)\) 与 \(f(n)\) 是两个定义在非负整数集合上的两个积性函数,且满足条件:
那么有结论:
证明:
因为我们知道
那么可以将这个式子表示为:
想欧拉函数中的式子一样再将左右两边同时卷上 \(\mu\),可得:
完结散花。