Loading

莫比乌斯反演 学习笔记

供复习,没证明。

要开始这个知识点,首先要了解一些 数论函数

  • 数论函数: 定义域为正整数,值域为复数的一个子集的函数。

一、基本数论函数及性质

  • 元函数 \(\epsilon(n)=[n=1]\)

  • \(1\) 函数 \(1(n)=1\)

  • 除数函数 \(\sigma_k(n)=p^k\),其中 \(p\)\(n\) 的约数。

    特别地,\(\sigma_0(n)\) 代表 \(n\) 的约数个数,\(\sigma_1(n)\) 代表 \(n\) 的约数个数和。

  • 幂函数 \({I}_k(n)= n^k\)

    特别地,\(I_0(n)= 1\)\(I_1(n)= n\)\(I_1\) 一般可以简写为 \(I\)

  • 欧拉函数 \(\varphi(n)\) 代表 \([1,n]\) 内与 \(n\) 互质的正整数个数。

  • 莫比乌斯函数

    \[\mu(n)\begin{cases} 1 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n = 1\\ (-1)^k \ \ \ \ \ \ \ \ \ n = p_1p_2p_3...p_k\\ 0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ otherwise \end{cases}\]

    其中 \(p_1p_2...p_k\) 为互不相同的质数。

这六个数论函数会比较常用。他们都有一个共同的性质:积性函数。

  • 积性函数 对于一个数论函数,若 \(a,b\) 互质,如果 \(f(a)f(b) = f(ab)\) 成立,则称 \(f\) 是积性函数。

  • 完全积性函数 对于一个数论函数,如果 \(f(a)f(b) = f(ab)\) 成立,则称 \(f\) 是积性函数(即不要求 \(a,b\) 互质)。

二、狄利克雷卷积

  • 定义

两个数论函数 \(f,g\)卷积\(h\) ,满足:

\[h(n)=\sum_{i\mid n}f(i) \ g(\frac ni) \]

记作 \(h = f * g\)

  • 常用的卷积(特别是前三个)
  1. \(I =\varphi * 1\),即 \(\sum_{i\mid n}\varphi(i)=n\)

  2. \(\epsilon =\mu * 1\),即 \(\sum_{i\mid n}\mu(i)=[n=1]\)

  3. \(\varphi =\mu * I\),即 \(\sum_{i\mid n}\mu(i) \times i = \varphi(n)\)

  4. \(I * 1 = \sigma_1\)

  5. \(1 * 1 = \sigma_0\)

  • 性质
  1. 若两个数论函数 \(f,g\) 为积性函数,则其卷积 \(h\) 也是积性函数。

  2. 卷积满足 交换律结合律 。即 \(f * g = g * f\) 以及 \(f*(g*h)=(f*g)*h\)

  3. 任何数论函数卷上元函数均为其本身,即 \(f * \epsilon = f\)

三、莫比乌斯反演

开始之前,先复习一个内容:

  • 整除分块

    求一个形如 \(\begin{aligned}\sum_{i=1}^n \lfloor \frac ni \rfloor\end{aligned}\) 的值,我们需要 \(O(n)\) 枚举吗?

    显然不用。原因是有大量的 \(\lfloor \frac ni \rfloor\) 是重复的。比如说,当 \(n = 10\)\(i = 6,7,8,9,10\) 的时候 \(\lfloor \frac ni \rfloor\) 都是一样的。

    所以我们在枚举 \(i\) 的时候,不用每次都写 i++,而是可以令 next_i=n/(n/i)+1,得到的 next_i 就是下一次的 i。这样的时间复杂度为 \(O(\sqrt{n})\)

    简单证明:

    \(1 ≤ i ≤\sqrt{n}\) , 显然 \(\lfloor \frac ni \rfloor\) 最多只有 $ \sqrt{n}$ 种取值。

    \(\sqrt{n} ≤ i ≤ n\) , 显然 \(1 ≤ \lfloor \frac ni \rfloor ≤ \sqrt{n}\) ,最多也只有 $ \sqrt{n}$ 种取值。

    每次跳到下一个 i(即 next_i),易知 \(\lfloor \frac ni \rfloor\) 都会 +1,故得证。

  • 莫比乌斯反演定理\(g = f * 1\) ,则 \(f = g * \mu\)

    • 略证:

      因为 \(g = f * 1\)

      \(f = f * \epsilon = f * 1 * \mu = g * \mu\)

      即证。

  • 莫比乌斯反演的变形 \(g(n)=\sum_{n\mid d}f(d)\) 等价于 \(f(n)=\sum_{n\mid d}\mu\left(\frac dn\right)\ g(d)\)

    记忆:即将 整除分数 的地方将 \(n,d\) 交换了。

  • 反演的意义

    将一些式子通过 莫比乌斯反演定理 变形,可以对式子进行线性的初始化(e.g 线性欧拉筛 / 线性筛 \(\mu\) ),将复杂度降至 \(O(n)\)

    进一步地,通过 整除分块 , 能够把复杂度进一步降低到 \(O(\sqrt{n})\)

四、小结和提示

  1. 看到 \([\gcd = k]\) 的形式,要第一时间想到莫比乌斯反演。

  2. 没有思路时,考虑交换求和顺序。

P3455 [POI2007] ZAP

P2522 [HAOI2011] Problem B

P2257 YY 的 GCD

P3327 [SDOI2015] 约数个数和

posted @ 2020-08-02 15:37  Sqrtyz  阅读(121)  评论(0)    收藏  举报