莫比乌斯反演
2020/06/13
开坑莫比乌斯反演(只是一个平平无奇的搬运工罢了)。
参考: 莫比乌斯反演 - OI Wiki
前置知识
引理1
证明:
设
所以
引理2
略证:
对于 \(d \le \sqrt{n}\),\(\lfloor \frac{n}{d} \rfloor\) 有 \(\sqrt{n}\) 种取值;
对于 \(d > \sqrt{n}\),由于 \(\lfloor \frac{n}{d} \rfloor \le \sqrt{n}\),所以也只有 \(\sqrt{n}\) 种取值。
综上,得证。
数论分块
\(\Rightarrow\) 传送门
积性函数
定义
若 \(\gcd(a,b) = 1\) 且 \(f(xy) = f(x)f(y)\) ,则称 \(f(x)\) 为积性函数。
性质
若 \(f(x)\) 和 \(g(x)\) 为积性函数,则以下函数也为积性函数:
证明:
前三个显然,下面证明 \(h(x) = \sum \limits_{d\mid x} f(d) g(\frac{x}{d})\) (两个积性函数的 Dirichlet 卷积还是积性函数):
例子
-
单位函数:\(\epsilon(1) = \left[ n = 1 \right]\)
-
恒等函数:\(\operatorname{id}_k(n)=n^k\),\(\operatorname{id}_1(n)\) 通常记作 \(\operatorname{id}(n)\)
-
常数函数:\(1(n)=1\)
-
除数函数:\(\sigma_k(n) = \sum \limits_{d \mid n} d^k\),\(\sigma_0(n)\) 通常记作 \(\operatorname{d}(n)\) 或 \(\tau(n)\) (即约数的个数),\(\sigma_1(n)\) 通常记作 \(\sigma(n)\)
-
欧拉函数:\(\varphi(n) = \sum \limits_{i=1}^{n} \left[ \gcd(i,n) = 1 \right]\),即小于等于 \(n\) 的数中与 \(n\) 互质的数的个数
-
莫比乌斯函数:\(\mu(n) = \begin{cases} 1 & n=1\\ 0 & \exists d > 1, \operatorname{s.t.} d^2 \mid n \\ -1^{\omega(n)} & otherwise \\ \end{cases}\)
\(\exists d > 1, \operatorname{s.t.} d^2 \mid n\) 即存在一个质因子出现了两次以上。
\(\omega(n)\) 表示 \(n\) 的本质不同的质因子的个数。
Dirichlet 卷积
定义
定义两个数论函数的 Dirichlet 卷积为
性质
Dirichlet 卷积满足交换律和结合律。
其中 \(\varepsilon\) 为 Dirichlet 卷积的单位元,即对任意数论函数 \(f(x)\),都有 \(f(x) \ast \varepsilon = f(x)\)
例子
莫比乌斯函数
定义
\(\mu\) 为莫比乌斯函数,其定义为
性质
莫比乌斯函数是积性函数,且它还有以下性质:
即 \(\sum \limits_{d \mid n} \mu(d) = \varepsilon(n)\),即 \(\mu \ast 1 = \varepsilon\)
证明
设 \(n = \prod \limits_{i=1}^{k} p_{i}^{c_i}, n'=\prod \limits_{i=1}^{k} p_{i}\),
那么 \(\sum \limits_{d \mid n} \mu(d) = \sum \limits_{d \mid n'} \mu(d) = \sum \limits_{i=1}^{k} \binom{k}{i} \cdot (-1)^{i}\),
根据二项式定理,可以知道 \(\sum \limits_{i=1}^{k} \binom{k}{i} \cdot (-1)^{i} = \left[1+(-1)\right]^{k}\)。
所以 \(\sum \limits_{d \mid n} \mu(d)\) 在 \(k=0\) 时等于 \(1\),否则等于 \(0\),即 \(\sum \limits_{d \mid n} \mu(d) = \varepsilon(n)\)。
补充结论
反演结论:\(\left[ gcd(i,j) = 1 \right] \iff \sum \limits_{d \mid gcd(i,j)} \mu(d)\)
证明:直接用上面的结论推导即可。
线性筛
线性筛几乎可以筛所有的积性函数,\(\mu\) 也不例外。
void getMu() {
mu[1] = 1;
for (int i = 2; i <= N; ++i) {
if (!vis[i]) p[++tot] = i, mu[i] = -1;
for (int j = 1; j <= tot && i * p[j] <= N; ++j) {
vis[i * p[j]] = 1;
if (i % p[j] == 0) {
mu[i * p[j]] = 0;
break;
}
mu[i * p[j]] = -mu[i];
}
}
}
莫比乌斯反演
定义
对于两个数论函数 \(f(n),g(n)\),若
则
证明
法一:运用数论变换
然后由 \(\sum \limits_{d \mid n} \mu(d) = \varepsilon(n)\) 可知,只有当 \(n=k\) 时,最后一步中的 \(\sum \limits_{d \mid \frac{n}{k}}\) 才等于 \(1\),所以 \(\sum \limits_{k \mid n} g(k) \sum \limits_{d \mid \frac{n}{k}} \mu(d) = \sum \limits_{d \mid n} \mu(d) f(\frac{n}{d}) = g(n)\) 。
证毕。
法二:利用卷积
原问题为:已知 \(f = g\ast 1\),证明 \(g = f \ast \mu\)
\(f \ast \mu = g \ast 1 \ast \mu = g\) (其中 \(1\ast \mu = \varepsilon\))
非卷积形式
对于数论函数 \(f,g\) 和完全非积性函数 \(t\),且 \(t(1)=1\),则
证明留作习题。