一. 莫比乌斯函数

定义

设正整数 nn,根据唯一分解定理分解为 p1c1p2c2pkckp_1^{c_1}p_2^{c_2}\cdots p_k^{c_k}

莫比乌斯函数可定义为 μ(n)={0(i,ci>1)(1)k(else)\mu(n)=\begin{cases}0&(\exists i,c_i>1)\\(-1)^k&(else)\end{cases}

性质

  1. 莫比乌斯函数是积性函数,分类讨论可证得。

    因此我们可以用线性筛法筛莫比乌斯函数

  2. dnμ(d)={1(n=1)0(n>1)\sum\limits_{d\mid n}\mu(d)=\begin{cases}1&(n=1)\\0&(n>1)\end{cases}

    证明:

    1. n=1n=1 时,显然成立。

    2. n>1n>1 时:

      dnμ(d)=i=0ic1j=0jc2x=0xckμ(p1ip2jpkx)=i=0i1j=0j1x=0x1μ(p1ip2jpkx)=i=0ik(ki)(1)i=(1+1)k=0\begin{gather} \sum\limits_{d\mid n}\mu(d)=\sum\limits_{i=0}^{i\le c_1}\sum\limits_{j=0}^{j\le c_2}\cdots\sum\limits_{x=0}^{x\le c_k}\mu(p_1^ip_2^j\cdots p_k^x)\\ =\sum\limits_{i=0}^{i\le 1}\sum\limits_{j=0}^{j\le 1}\cdots\sum\limits_{x=0}^{x\le 1}\mu(p_1^ip_2^j\cdots p_k^x)\\ =\sum\limits_{i=0}^{i\le k}\binom{k}{i}(-1)^i\\ =(-1+1)^k\\ =0\\ \end{gather}

二. 莫比乌斯反演

第一定理

F(n)=dnf(d)F(n)=\sum\limits_{d\mid n}f(d),则 f(n)=dnμ(d)F(nd)f(n)=\sum\limits_{d\mid n}\mu(d)F(\dfrac{n}{d})

证明:

若证f(n)=dnμ(d)F(nd)即证f(n)=dnμ(d)gndf(g)即证f(n)=dngndμ(d)f(g)\begin{gather} \text{若证}f(n)=\sum\limits_{d\mid n}\mu(d)F(\dfrac{n}{d})\\ \text{即证}f(n)=\sum\limits_{d\mid n}\mu(d)\sum\limits_{g\mid \frac{n}{d}}f(g)\\ \text{即证}f(n)=\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}}\mu(d)f(g)\\ \end{gather}

我们在这里需要证明 dngnd=gndng\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}}=\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}}

什么情况下这两者等价呢?我们可以这样理解,每个 \sum,形如 i=1in\sum\limits_{i=1}^{i\le n} 的也好,形如 dn\sum\limits_{d\mid n} 的也罢,相当于是往后传递了若干次数,比如 d6\sum\limits_{d\mid 6} 往后传递的数的集合为 {1,2,3,6}\{1,2,3,6\}。两个 \sum 就相当于传递了若干次数对。那么,设 dngnd\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}} 向后传递的数对构成的集合为 S1S_1gndng\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}} 向后传递的数对构成的集合为 S2S_2(其中数对的第一个位置表示 dd,第二个位置表示 gg)。如果我们能证明 S1=S2S_1=S_2,我们就能证明 dngnd=gndng\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}}=\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}}

因为每次向后传递的是一个数对,所以我们可以用一个矩阵来表示 S1S_1S2S_2

因为 dd 严格单调,对于每个 ddgg 也严格单调,所以 S1S_1S2S_2 中均没有重复元素。我们可以用一个 0/10/1 矩阵来表示 S1S_1S2S_2

例如 n=6n=6dngnd\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}} 对应的 0/10/1 矩阵:(每一行代表一个 dd 的值,每一列代表一个 gg 的值,省略 00

[123456111112113114561]\begin{bmatrix} &1&2&3&4&5&6\\ 1&1&1&1& & &1\\ 2&1& &1& & & \\ 3&1&1& & & & \\ 4& & & & & & \\ 5& & & & & & \\ 6&1& & & & & \\ \end{bmatrix}

根据这个例子,我们大概能猜出结论,这个矩阵一定是沿对角线对称的,我们来证明:

a[i][j]=1    jni    inj    a[j][i]=1a[i][j]=0    jni    inj    a[j][i]=0\begin{gather} \text{若}a[i][j]=1\\ \iff j\mid \dfrac{n}{i}\\ \iff i\mid \dfrac{n}{j}\\ \iff a[j][i]=1\\ \text{若}a[i][j]=0\\ \iff j\nmid \dfrac{n}{i}\\ \iff i\nmid \dfrac{n}{j}\\ \iff a[j][i]=0\\ \end{gather}

由此证得该矩阵沿对角线对称,由于这条性质,当 dngnd\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}}ddgg 更换位置变成 gndng\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}} 后,表示成的矩阵不变(注意虽然公式中 d,gd,g 交换位置,但矩阵每一行仍代表一个 dd 的值,每一列仍代表一个 gg 的值。用向后传数对的方式理解,数对的第一个位置仍表示 dd,第二个位置仍表示 gg)。故 S1=S2S_1=S_2,证得 dngnd=gndng\sum\limits_{d\mid n}\sum\limits_{g\mid \frac{n}{d}}=\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}}

接着主线证明:

即证f(n)=gndngμ(d)f(g)即证f(n)=gnf(g)dngμ(d)\begin{gather} \text{即证}f(n)=\sum\limits_{g\mid n}\sum\limits_{d\mid \frac{n}{g}}\mu(d)f(g)\\ \text{即证}f(n)=\sum\limits_{g\mid n}f(g)\sum\limits_{d\mid \frac{n}{g}}\mu(d)\\ \end{gather}

根据莫比乌斯函数的性质,发现右部的很多项都乘有 00,消去乘有 00 的项可得:

即证f(n)=f(n)\begin{gather} \text{即证}f(n)=f(n) \end{gather}

显然成立,证毕。

本证明过程由个人独自完成,且引入了数对和矩阵辅助证明,所以难免有些啰嗦,读者可以思考简化证明过程。

第二定理

F(n)=ndf(d)F(n)=\sum\limits_{n\mid d}f(d),则 f(n)=ndμ(dn)F(d)f(n)=\sum\limits_{n\mid d}\mu(\dfrac{d}{n})F(d)

证明:

前面和第一定理推导过程相同,一直到这一步:

即证f(n)=nddgμ(dn)f(g)\begin{gather} \text{即证}f(n)=\sum\limits_{n\mid d}\sum\limits_{d\mid g}\mu(\dfrac{d}{n})f(g)\\ \end{gather}

这里开始和第一公式的推导不一样了。设 d=dnd'=\dfrac{d}{n},则 d=dnd=d'n,带入得:

即证f(n)=ngdgnμ(d)f(g)\begin{gather} \text{即证}f(n)=\sum\limits_{n\mid g}\sum\limits_{d'\mid \frac{g}{n}}\mu(d')f(g)\\ \end{gather}

解释:ndgn\mid d\mid g 所以 gg 一定能去遍 nn 的所有倍数,dd'dn\dfrac{d}{n},所以一定有 dgnd'\mid \dfrac{g}{n}

有人可能会问,这个怎么无法用证第一定理时那样用数对和矩阵的方式证明呢,因为确实 nddgngdg\sum\limits_{n\mid d}\sum\limits_{d\mid g}\neq\sum\limits_{n\mid g}\sum\limits_{d\mid g},但是这里这两个 \sum 号后面并不会用到 dd 的值,只会用到 dd',所以只需要保证 dd' 不变就行了。

对应到矩阵上来说,以 n=2n=2 举例,nddg\sum\limits_{n\mid d}\sum\limits_{d\mid g} 对应的矩阵:

[12345612111341561]\begin{bmatrix} &1&2&3&4&5&6\\ 1& & & & & & \\ 2& &1& &1& &1\\ 3& & & & & & \\ 4& & & &1& & \\ 5& & & & & & \\ 6& & & & & &1\\ \end{bmatrix}

ngdg\sum\limits_{n\mid g}\sum\limits_{d\mid g}

[123456111121113141561]\begin{bmatrix} &1&2&3&4&5&6\\ 1& &{\color{red}1}& &{\color{red}1}& &{\color{red}1}\\ 2& &1& &1& &1\\ 3& & & & & &{\color{red}1}\\ 4& & & &1& & \\ 5& & & & & & \\ 6& & & & & &1\\ \end{bmatrix}

可以看到两者中有不同之处的行所对应的 dZd'\notin\mathbb{Z}12\dfrac{1}{2}32\dfrac{3}{2})。

继续证明:

即证f(n)=ngdgnμ(d)f(g)\begin{gather} \text{即证}f(n)=\sum\limits_{n\mid g}\sum\limits_{d'\mid \frac{g}{n}}\mu(d')f(g)\\ \end{gather}

接下来就和第一定理的过程完全一样了。

应用

如果有两个函数 f(n)f(n)F(n)F(n)F(n)F(n) 好求,f(n)f(n) 不好求,而两者间又有 F(n)=dnf(d)F(n)=\sum\limits_{d\mid n}f(d) 或者 F(n)=ndf(d)F(n)=\sum\limits_{n\mid d}f(d) 的关系,可以使用莫反。

小技巧:遇到 nd\sum\limits_{n\mid d} 的时候,可以设 d=dnd'=\dfrac{d}{n},则 d=dnd=d'n,代入可得转化为 d=1d<\sum\limits_{d'=1}^{d'<\infty},这样变量就是连续的了。

两个重要结论

  1. dnμ(d)=[n=1]\sum\limits_{d\mid n}\mu(d)=[n=1]

    这条结论主要反着用。

  2. i=1indi=d=1dnnd\sum\limits_{i=1}^{i\le n}\sum\limits_{d\mid i}=\sum\limits_{d=1}^{d\le n}\lfloor\dfrac{n}{d}\rfloor