音乐播放器
violet
 
文章 标签
5

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...
总访问量:  |   访问人数:

莫比乌斯反演

莫比乌斯反演

莫比乌斯反演是数论中的重要内容。对于一些函数 f(n)f(n) , 如果很难直接求出它的值,而容易求出其倍数和或约数和 g(n)g(n) ,那么可以通过莫比乌斯反演简化运算,求得 f(n)f(n) 的值。

前置芝士

数论分块, DirichletDirichlet 卷积

莫比乌斯函数

关于莫比乌斯函数的补充结论

反演结论: [gcd⁡(i,j)=1]=∑d∣gcd⁡(i,j)μ(d)\displaystyle\left[ \gcd(i, j) = 1\right] = \sum_{d \mid \gcd(i, j)} \mu(d)

直接推导:如果看懂了上一个结论,这个结论稍加思考便可以推出:如果 gcd⁡(i,j)=1\gcd(i, j) = 1 的话,那么代表着我们按上个结论中枚举的那个 nn 是 11, 也就是式子的值是 11 反之,有一个与 [gcd⁡(i,j)=1]\left[ \gcd(i,j) = 1\right] 相同的值: 00

利用 ε\varepsilon 函数 :根据上一结论, [gcd⁡(i,j)=1]=ε(gcd⁡(i,j))\left[ \gcd(i, j) = 1\right] = \varepsilon(\gcd(i, j)) ,将 $ \varepsilon $ 展开即可。

线性筛

mu[1] = 1;
for (int i = 2; i <= N; i++)
{
	if (!flag[i]) prime[++tot] = i, mu[i] = -1;
	for (int j = 1; j <= tot && i * prime[j] <= N; j++)
	{
		flag[i * prime[j]] = 1;
		if (i % prime[j] == 0) break;
		mu[i * prime[j]] = -mu[i];
	}
}

拓展

φ∗1=id⁡\varphi * 1 = \operatorname{id}

证明:

将 nn 分解质因数: n=∏i=1kpici\displaystyle n = \prod_{i =1 }^k p_i^{c_i}

首先,因为 φ\varphi 是积性函数,故只要证明当 n′=pcn' = p^c 时 φ∗1=∑d∣n′φ(n′d)=id⁡\displaystyle \varphi * 1 = \sum_{d \mid n'}\varphi(\dfrac{n'}{d}) = \operatorname{id} 成立即可。

因为 pp 是质数, 于是 d=p0,p1,p2,⋯ ,pcd = p^0, p^1, p^2, \cdots, p^c

易知如下过程:

φ∗1=∑d∣nφ(nd)=∑i=0cφ(pi)=1+p0⋅(p−1)+p1⋅(p−1)+⋯+pc−1⋅(p−1)=pc=id⁡\begin{aligned} \varphi \ast 1 &= \sum_{d\mid n}\varphi(\frac{n}{d})\\ &= \sum_{i = 0} ^ c\varphi(p^i)\\&= 1 + p^0\cdot(p - 1) + p ^ 1\cdot(p - 1) + \cdots + p ^ {c - 1}\cdot(p - 1)\\&= p ^ c\\&= \operatorname{id}\\ \end{aligned}

该式子两侧同时卷 μ\mu 可得 φ(n)=∑d∣nd⋅μ(nd)\displaystyle \varphi (n) = \sum_{d\mid n}d \cdot \mu(\frac{n}{d})

QED.

莫比乌斯变换

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

形式一:如果有 $ f(n) = \sum_{d\mid n}g(n)$, 那么有 g(n)=∑d∣nμ(d)f(nd)g(n) = \sum_{d \mid n}\mu(d)f(\frac{n}{d}) 。

这种形式下,数论函数 f(n)f(n) 称为数论函数 g(n)g(n) 的莫比乌斯变换,数论函数 g(n)g(n) 称为数论函数 f(n)f(n) 的莫比乌斯逆变换(反演)。

容易看出,数论函数 g(n)g(n) 的莫比乌斯变换,就是将数论函数 g(n)g(n) 与常数函数 11 进行狄利克雷卷积。

(PS.根据狄利克雷卷积与狄利克雷生成函数的对应关系,数论函数 g(n)g(n) 的莫比乌斯变换对应的狄利克雷生成函数,就是数论函数 g(n)g(n) 的狄利克雷生成函数与黎曼函数 ζ\zeta 的乘积。

形式二:如果有 f(n)=∑n∣dg(d)f(n) = \sum_{n \mid d}g(d) ,那么有 g(n)=∑n∣dμ(dn)f(d)g(n) = \sum_{n \mid d}\mu(\dfrac{d}{n})f(d) 。

证明:

法一:对原式做数论变换。

∑d∣nμ(d)f(nd)=∑d∣nμ(d)∑k∣ndg(k)=∑k∣ng(k)∑d∣nkμ(d)=g(n)\displaystyle \sum_{d \mid n}\mu(d)f(\frac{n}{d}) = \sum_{d \mid n}\mu(d)\sum_{k \mid \frac nd}g(k) =\sum_{k \mid n}g(k)\sum_{d \mid \frac nk}\mu(d) = g(n)

用 ∑d∣nμ(d)f(nd)\sum_{d \mid n}\mu(d)f(\frac nd), 再变换求和顺序。最后一步变换的依据: ∑d∣nμ(d)=[n=1]\sum_{d \mid n} \mu(d) = \left[ n = 1\right] ,因此在 nk=1\frac nk = 1 时第二个和式的值才为 11 。此时 n=kn = k ,故原式等价于 ∑k∣n[n=k]⋅g(k)=g(n)\displaystyle \sum_{k\mid n}\left[n = k\right]\cdot g(k) = g(n)

法二:运用卷积。

原问题为:已知 f=g∗1f = g * 1 , 证明 g=f∗μg = f * \mu

易知如下转化:f∗μ=g∗1∗μ  ⟹  f∗μ=gf * \mu = g * 1 * \mu \implies f\ast\mu = g (其中 1∗μ=ε1 * \mu = \varepsilon )

对于第二种形式:

类似上面的方法一,我们考虑逆推这个式子。

∑n∣dμ(dn)f(d)=∑k=1+∞μ(k)f(kn)=∑k=1+∞μ(k)∑kn∣dg(d)=∑n∣dg(d)∑k∣dnμ(k)=∑n∣dg(n)ϵ(dn)=g(n)\begin{aligned} &\sum_{n \mid d}{\mu(\frac{d}{n})f(d)} \\=& \sum_{k = 1}^{+\infty}{\mu(k)f(kn)} = \sum_{k = 1} ^ {+\infty}{\mu(k)\sum_{kn \mid d}{g(d)}} \\ =& \sum_{n \mid d}{g(d)\sum_{k \mid \frac{d}{n}}{\mu(k)}} = \sum_{n \mid d}{g(n)\epsilon(\frac{d}{n})} \\= & g(n) \end{aligned}

我们把 dd 表示为 knkn 的形式,然后把 ff 的原定义代入式子。

发现枚举 kk 再枚举 knkn 的倍数可以转换为直接枚举 nn 的倍数再求出 kk ,发现后面那一块其实就是 ϵ\epsilon , 整个式子只有在 d=nd = n 的时候才能取到值。

QED.

实战例题

Problem B

∑d=1min⁡(⌊nk⌋,⌊mk⌋)μ(d)⌊nkd⌋⌊mkd⌋\sum_{d = 1}^{\min\left( \lfloor \frac nk \rfloor ,\lfloor \frac mk \rfloor\right)} \mu(d) \lfloor\frac n{kd}\rfloor\lfloor\frac m{kd}\rfloor

YY的GCD

∑T=1n⌊nT⌋∗⌊mT⌋∑k∣T,k∈primeμ(Tk)\sum_{T = 1}^n \lfloor\frac nT\rfloor*\lfloor\frac mT\rfloor \sum_{k \mid T, k \in prime}\mu(\dfrac{T}{k})

数字表格

∏T=1n(∏d∣Tf(d)μ(Td))⌊nT⌋⋅⌊mT⌋\prod_{T =1}^n(\prod_{d \mid T}f(d)^{\mu(\frac Td)})^{\lfloor\frac nT\rfloor\cdot\lfloor\frac mT\rfloor}


赏