抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

μ\mu 的定义,性质,和几道例题。

定义

μ(d)={1n=1(−1)kn=∏i=1kpi0otherwise\mu(d) = \begin{cases} 1&n=1\\ (-1)^k&n=\prod_{i=1}^k p_i\\ 0&\text{otherwise} \end{cases}

线性求值

1
2
3
4
5
6
7
8
9
10
11
12
void sieve_mu(int n){
mu[1] = 1;
FL(i, 2, n){
if(!vis[i])pri[++len] = i, mu[i] = -1;
for(int j = 1;j <= len && pri[j] * i <= n; j++){
vis[pri[j] * i] = 1;
if(i % pri[j] == 0)break;
mu[pri[j] * i] = -mu[i];
}
}
FL(i, 1, n)mu[i] = mu[i - 1];
}

性质

∑d∣nμ(d)=[n=1][gcd(i,j)=1]=∑d∣gcd⁡(i,j)μ(d)f(n)=∑d∣ng(n)⇒g(n)=∑d∣nf(d)μ(nd)f(n)=∑n∣dg(d)⇒g(n)=∑n∣df(d)μ(dn)\sum_{d|n}\mu(d)=[n=1]\\ [gcd(i,j)=1]=\sum_{d|\gcd(i,j)}\mu(d)\\ f(n)=\sum_{d\mid n}g(n)\Rightarrow g(n) = \sum_{d\mid n}f(d)\mu(\frac nd)\\ f(n)=\sum_{n\mid d}g(d)\Rightarrow g(n) = \sum_{n\mid d}f(d)\mu(\frac dn)

从这里开始,默认 n≤mn\le m。

Ex.1

求∑i=1n∑j=1m[gcd(i,j)=1]\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=1]

∑i=1n∑j=1m[gcd(i,j)=1]=∑i=1n∑j=1m∑d∣gcd⁡(i,j)μ(d)=∑d=1nμ(d)⌊nd⌋⌊md⌋\begin{aligned} &\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=1]\\ =&\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid \gcd(i, j)}\mu(d)\\ =&\sum_{d=1}^n \mu(d)\left\lfloor\frac nd\right\rfloor \left\lfloor\frac md\right\rfloor \end{aligned}

μ(d)\mu(d) 前缀和优化,后面的整除分块即可。

如果是求 ∑i=1n∑j=1m[gcd(i,j)=k]\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=k]

这也很简单,我们把式子同时除以 kk,得 ∑i=1⌊nk⌋∑j=1⌊mk⌋[gcd(i,j)=1]\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[gcd(i,j)=1]

然后就一样了。

Ex.2

求 ∑i=1n∑j=1mgcd⁡(i,j)∈prime\sum_{i=1}^n\sum_{j=1}^m \gcd(i, j) \in prime

我们假设 n≤mn \le m,然后枚举 k∈primek \in prime,得

∑i=1nk∑i=1n∑j=1m[gcd⁡(i,j)=k]=∑k=1n∑i=1⌊nk⌋∑j=1⌊mk⌋[gcd(i,j)=1]\sum_{i=1}^nk\sum_{i=1}^n\sum_{j=1}^m[\gcd(i, j)=k]=\sum_{k=1}^n\sum_{i=1}^{\lfloor\frac nk\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[gcd(i, j)=1]\\

我们枚举一下 d=gcd⁡d = \gcd,并提到前面。

=∑k=1n∑i=1⌊nk⌋∑j=1⌊mk⌋∑d∣gcd⁡(i,j)μ(d)=∑k=1n∑d=1⌊nk⌋μ(d)⌊ndk⌋⌊mdk⌋=\sum_{k=1}^n\sum_{i=1}^{\lfloor\frac nk\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}\sum_{d\mid \gcd(i, j)}\mu(d)=\sum_{k=1}^n \sum_{d=1}^{\lfloor\frac nk\rfloor}\mu(d)\left\lfloor\frac n{dk}\right\rfloor\left\lfloor\frac m{dk}\right\rfloor\\

由于 n≤107n\le 10^7,枚举 kk 太慢了,我们还要优化,设 T=dkT = dk

=∑k=1n∑d=1⌊nk⌋μ(d)⌊nT⌋⌊mT⌋=∑T=1n⌊nT⌋⌊mT⌋∑k∣Tμ(Tk)= \sum_{k=1}^n\sum_{d=1}^{\lfloor\frac nk\rfloor}\mu(d)\left\lfloor\frac nT\right\rfloor\left\lfloor\frac mT\right\rfloor=\sum_{T=1}^n\left\lfloor\frac nT\right\rfloor\left\lfloor\frac mT\right\rfloor\sum_{k\mid T}\mu(\frac Tk)

因为 id∗μ=φid\ast\mu=\varphi 所以 ∑k∣Tμ(Tk)=φ(T)\sum\limits_{k\mid T}\mu(\frac Tk)=\varphi(T),最终复杂度 O(n+n)O(n + \sqrt{n})。

Ex.3

设 d(x)d(x) 为 xx 的约数个数,求 ∑i=1n∑j=1md(ij)\sum_{i=1}^n\sum_{j=1}^m d(ij)。

有个结论 d(ij)=∑x∣i∑y∣j[gcd⁡(x,y)=1]d(ij) = \sum_{x\mid i}\sum_{y\mid j}[\gcd(x, y) = 1]

我们一个质数pp,i=i′∗pk1,j=j′∗pk2i=i'*p^{k_1},j=j'*p^{k_2}。

考虑 pp 对 d(ij)d(ij) 的贡献,显然在 dd 的因子中,pp 可以为 00~k1+k2k_1+k_2 任意一个。

我们只看 pp 这一项,设 x=x′pkx,y=y′pkyx=x'p^{k_x},y=y'p^{k_y}

要满足 gcd⁡(x,y)=1\gcd(x,y)=1,那么就有 gcd⁡(pkx,pky)=1\gcd(p^{k_x},p^{k_y})=1

要么kx=0,ky∈[0,k2]k_x=0,k_y\in[0,k_2],共k2+1k_2+1种

要么ky=0,kx∈[0,k1]k_y=0,k_x\in[0,k_1],共k1+1k_1+1种

减去重复判断的kx=0,ky=0k_x=0,k_y=0这种情况,最后答案k1+k2+1k_1+k_2+1种

我们带入原式得:

=∑i=1n∑j=1m∑x∣i∑y∣j[gcd(x,y)=1]=∑i=1n∑j=1m∑x=1n∑y=1m∑d∣gcd(x,y)[x∣i][y∣j]μ(d)=∑x=1n∑y=1m∑d∣gcd(x,y)μ(d)∑i=1n[x∣i]∑j=1m[y∣j]=∑x=1n∑y=1m∑d∣gcd(x,y)μ(d)⌊nx⌋⌊my⌋=∑d=1nμ(d)∑x=1⌊nd⌋⌊ndx⌋∑y=1⌊md⌋⌊mdy⌋\begin{aligned} &=\sum_{i=1}^n\sum_{j=1}^m\sum_{x\mid i}\sum_{y \mid j}[gcd(x,y)=1]\\ &=\sum_{i=1}^n\sum_{j=1}^m\sum_{x=1}^n\sum_{y=1}^m\sum_{d\mid gcd(x, y)}[x\mid i][y\mid j]\mu(d)\\ &=\sum_{x=1}^n\sum_{y=1}^m\sum_{d\mid gcd(x, y)}\mu(d)\sum_{i=1}^n[x\mid i]\sum_{j=1}^m[y\mid j]\\ &=\sum_{x=1}^n\sum_{y=1}^m\sum_{d\mid gcd(x, y)}\mu(d)\lfloor\frac nx\rfloor\lfloor\frac my\rfloor\\ &=\sum_{d=1}^n\mu(d)\sum_{x=1}^{\lfloor\frac nd\rfloor}\left\lfloor\frac n{dx}\right\rfloor\sum_{y=1}^{\lfloor\frac md\rfloor}\left\lfloor\frac m{dy}\right\rfloor \end{aligned}

Ex.4

求 ∑i=1n∑j=1mij[gcd(i,j)=k]\sum_{i=1}^{n}\sum_{j=1}^{m}ij[gcd(i,j)=k]。

先同时除以kk,但我们还要考虑 i,ji,j 的变化,除 kk 后 i,ji, j 会变为原来的 1k\dfrac 1k,所以最后要乘上 k2k^2。

=∑i=1⌊nk⌋∑j=1⌊mk⌋ij[gcd(i,j)=1]k2=∑i=1⌊nk⌋∑j=1⌊mk⌋ij∑d∣gcd⁡(i,j)μ(d)k2=k2∑d=1nμ(d)d2∑i=1⌊nkd⌋i∑j=1⌊mkd⌋j\begin{aligned} &=\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}ij[gcd(i,j)=1]k^2\\ &=\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}ij\sum_{d\mid \gcd(i,j)}\mu(d)k^2\\ &=k^2\sum_{d=1}^n\mu(d)d^2\sum_{i=1}^{\lfloor\frac n{kd}\rfloor}i\sum_{j=1}^{\lfloor\frac m{kd}\rfloor}j \end{aligned}

最后那两项为等差数列,计算时整除分块,最终复杂度 O(n)O(\sqrt{n})

Ex.5

求 ∑i=1n∑j=1nijgcd(i,j)\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j)。
我们知道 ∑d∣nφ(d)=n\sum_{d \mid n}\varphi(d) = n,所以只要把 μ\mu 换成 φ\varphi,然后正常做即可。

∑i=1n∑j=1nijgcd⁡(i,j)=∑i=1n∑j=1nij∑d∣gcd⁡(i,j)φ(d)=∑d=1nφ(d)∑i=1n[d∣i]i∑j=1n[d∣j]j=∑d=1nφ(d)∑x=1⌊nd⌋xd∑y=1⌊nd⌋yd=∑d=1nφ(d)d2∑x=1⌊nd⌋x∑y=1⌊nd⌋y\begin{aligned} \sum_{i=1}^n\sum_{j=1}^n ij \gcd(i,j)&=\sum_{i=1}^n\sum_{j=1}^nij\sum_{d\mid \gcd(i,j)}\varphi(d)\\ &=\sum_{d=1}^n\varphi(d)\sum_{i=1}^n[d\mid i]i\sum_{j=1}^n[d\mid j]j\\ &=\sum_{d=1}^n\varphi(d)\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}xd\sum_{y=1}^{\lfloor\frac{n}{d}\rfloor}yd\\ &=\sum_{d=1}^n\varphi(d)d^2\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}x\sum_{y=1}^{\lfloor\frac{n}{d}\rfloor}y\\ \end{aligned}