莫比乌斯反演相关

常见的积性函数

莫比乌斯函数 \(\mu(n)\)

  定义为: $$ \mu(n) = \begin{cases}1 & n = 1\\ (-1)^k \ & n = p_1p_2\cdots p_k\\ 0 & other\\ \end{cases} $$   性质: $$\sum_{d | n}\mu(d) = [n = 1]$$ $$\sum_{d | n}\frac{\mu(d)}{d} = \frac{\varphi(n)}{n}$$

欧拉函数 \(\varphi(n)\)

  定义为: 不大于n的自然数中,与n互质的数的个数 $$\varphi(n) = m\prod_{p|m, p为质数}(1 - \frac{1}{p})$$   性质: $$\sum_{d|n}\varphi(d) = n$$   或写成狄利克雷卷积的形式: $(\varphi * I)(n) = id(n)$ $$对于质数p\ \ \ \varphi(p^k) = p^k - p^{k - 1}$$

约数个数函数 \(d(n)\)

字面意思

约数和函数 \(\sigma(n)\)

  定义为: $$\sigma(n) = \sum_{d | n}d$$

元函数 \(\varepsilon(n)\)

  定义为: $$\varepsilon(n) = [n = 1]$$

恒等函数 \(I(n)\)

   定义为:$$I(n) = 1$$    性质:$$I * I = d$$

单位函数 \(id(n)\)

  定义为: $$id(n) = n$$



狄利克雷卷积

狄利克雷卷积 是莫比乌斯反演的前置知识
  我们定义:$$ (f\ *\ g)(n)\ =\ \sum_{d|n}f(d)g(\frac{n}{d}) $$
  记作 \(f\ *\ g\)   读作 \(f\)\(g\)

显然的 狄利克雷卷积有 交换律 结合律 分配律

  对于常见的的积性函数:

\[\mu * I = \sigma \]

\[\varphi * I = id \]

\[I * I = d \]

  上三式可进一步推到:

\[id * \mu = \varphi \]

\[d * \mu = \varepsilon \]

上述内容理解后,莫比乌斯反演便水到渠成:

  对于 $$F = f * I$$
  有 $$f = F * \mu$$
  这便是莫比乌斯反演



莫比乌斯反演的一些结论

  1. \[\sum_{d | n}\mu(d) = [n = 1] \]

  2. \[\sum_{i = 1}^n\sum_{d | n}\mu(d) = \sum_{d = 1}^{n}\lfloor\frac{n}{d}\rfloor\mu(d) \]

  3. \[\sum_{i = 1} ^ n \sum_{j = 1} ^ m [gcd(i, j) = 1] = \sum_{d = 1}^{min(n, m)} \mu(d) \lfloor\frac{n}{d}\rfloor \lfloor \frac{m}{d} \rfloor \]

   结论3的推导过程

\[\begin{split} \sum_{i = 1}^ n \sum_{j = 1} ^ m [gcd(i, j) = 1] & = \sum_{i = 1} ^ n \sum_{j = 1} ^ m \sum_{d | gcd(i, j)} \mu(d)\\ & = \sum_{d = 1} ^ {min(n, m)} \mu(d) \sum_{i = 1} ^ n \sum_{j = 1} ^ m\ [d\ |\ gcd(i, j)]\\ & = \sum_{d = 1} ^ {min(n, m)} \mu(d) \lfloor\frac{n}{d}\rfloor\ \lfloor\frac{m}{d}\rfloor\\\ \end{split}\]



杜教筛

杜教筛是一种低于线性复杂度积性函数前缀和的奇妙算法
   举个例子 现在需要计算 \(\sum_{i = 1} ^ n f(i)\)  其中\(f(i)\)为积性函数
   构造 $f * g = h $  记 \(S(n) = \sum_{i = 1} ^ n f(i)\)
     推导过程:

\[\begin{split} \sum_{i = 1} ^ n h(i) & = \sum_{i = 1} ^ n \sum_{d | i} g(d) f(\frac{i}{d})\\ \to & = \sum_{d = 1} ^ n g(d) \sum_{i = 1} ^ {\lfloor \frac{n}{d} \rfloor} f(i)\\ \Rightarrow \sum_{i = 1} ^ n h(i) & = \sum_{d = 1} ^ n g(d) S(\lfloor \frac{n}{d} \rfloor)\\ \end{split}\]

     提出右边S的第一项:

\[\Rightarrow g(1)S(n) = \sum_{i = 1} ^ n h(i) - \sum_{d = 2} ^ n g(d) S(\lfloor \frac{n}{d} \rfloor) \]

   推导完成,具体的,使用整除分块递归的方法实现即可
   举个栗子:
     求 \(\sum_{i = 1} ^ n \mu(i)\), 构造 \(\mu * I = \varepsilon\) 对应上述推导中的 \(f *g = h\)
     我们可以得到: $$S(n) = 1 - \sum_{d = 2} ^ n S(\lfloor \frac{n}{d} \rfloor)$$
     类似的
     求 \(\sum_{i = 1} ^ n \varphi(i)\), 构造 \(\varphi * I = id\) 对应上述推导中的 \(f *g = h\)
     我们可以得到: $$S(n) = \sum_{i = 1} ^ n id(i) - \sum_{d = 2} ^ n S(\lfloor \frac{n}{d} \rfloor)$$

posted @ 2022-05-24 18:59  Aiza  阅读(50)  评论(1编辑  收藏  举报