音乐播放器
violet
 
文章 标签
5

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

莫比乌斯反演

莫比乌斯反演

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

前置芝士

数论分块, DirichletDirichlet 卷积

莫比乌斯函数

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

反演结论: [gcd(i,j)=1]=dgcd(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 的话,那么代表着我们按上个结论中枚举的那个 nn11, 也就是式子的值是 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=dnφ(nd)=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=dnφ(nd)=i=0cφ(pi)=1+p0(p1)+p1(p1)++pc1(p1)=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)=dndμ(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)=dnμ(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)=ndg(d)f(n) = \sum_{n \mid d}g(d) ,那么有 g(n)=ndμ(dn)f(d)g(n) = \sum_{n \mid d}\mu(\dfrac{d}{n})f(d)

证明:

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

dnμ(d)f(nd)=dnμ(d)kndg(k)=kng(k)dnkμ(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)

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

法二:运用卷积。

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

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

对于第二种形式:

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

ndμ(dn)f(d)=k=1+μ(k)f(kn)=k=1+μ(k)kndg(d)=ndg(d)kdnμ(k)=ndg(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)nkdmkd\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=1nnTmTkT,kprimeμ(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(dTf(d)μ(Td))nTmT\prod_{T =1}^n(\prod_{d \mid T}f(d)^{\mu(\frac Td)})^{\lfloor\frac nT\rfloor\cdot\lfloor\frac mT\rfloor}