莫某某的反演
莫某某的反演似乎有很多形式, 但不用太在意, 多关注常用的就行了。
莫某某的反演可以直接用容斥证明, 但有一种 “证明方法” 更易令人信服(并记住), 下面会介绍这种 “证明方法”。
数论函数及其加减数乘运算
即定义域为正整数的函数。
简单的例子:
\(\epsilon(n) = [n=1]\)
\(\text{1}(n) = 1\)
\(\text{id}_k(n) = n^k\)
\(\sigma_k(n) = \sum_{d|n} d^k\)
加减法
\((\text{f} \pm\text{g})(n) = \text{f}(n) \pm \text{g}(n)\)
数乘
\(k\) 为整数, \((x\text{f})(n) = x · \text{f}(n)\)
数论函数的狄利克雷卷积运算及其性质
定义两个数论函数的 狄利克雷卷积 运算(二元算符 \(*\))如下:
若 \(\text{h} = \text{f} * \text{g}\), 则:
数论函数的狄利克雷卷积运算满足 交换律、结合律和对加法的分配律, 可以自己验证一下。
(用狄利克雷卷积的另一种写法 \((\text{f}*\text{g})(n) = \sum_{ij=n} \text{f}(i)\text{g}(j)\) 会更容易验证)
幺元(单位元)
狄利克雷卷积的幺元为 \(\epsilon(n) = [n=1]\), 即对任意数论函数 \(\text{t}\) 有 \(\text{t} * \epsilon = \text{t}\)。
逆元
对于每个 \(\text{f}(1) \neq 0\) 的数论函数 \(\text{f}\), 都存在一个函数 \(\text{g}\) 使得 \(\text{f} * \text{g} = \epsilon\) 。
数论函数求逆(\(\text{f}(1) \neq 0\))
积性函数及其性质
满足 \(m \bot n\) 时 \(\text f(nm) = \text f (n) \text f (m)\) 的数论函数 \(\text f\) 称为 积性函数, 若无需满足 \(m \bot n\) 就有 \(\text f(nm) = \text f (n) \text f (m)\), 那么 \(\text f\) 被称为完全积性函数。
完全积性函数的例子:
\(\epsilon(n) = [n=1]\)
\(\text{id}_k(n) = n^k\)
\(\text 1(n) = 1\)
积性函数的例子:
\(\sigma_k(n) = \sum_{d|n} d^k\)
\(\varphi(n) = \sum_{i=1}^{n-1} [i \bot n]\)
性质1:两个积性函数的狄利克雷卷积仍然是积性函数
性质2:积性函数的逆是积性函数
证明以后再说吧。
莫比乌斯反演
\(\mu * \text 1 = \epsilon\), 故
还有另一方向上的莫比乌斯反演, 在这不述。
什么是 \(\mu\)?
由于 \(\text 1\) 是积性函数, 所以作为其逆的 \(\mu\) 也是积性函数, 那么从参数 \(p^k \;\;(p \in \{prime\}, k \ge 0)\) 开始:
\((\text 1 * \mu)(1) = \mu(1) = [1=1] = 1\), 故 \(\mu(1) = 1\) 。
\((\text 1 * \mu)(p^1) = \mu(1) + \mu(p^1) = [p^1 = 1] = 0\), 故 \(\mu(p_1) = -1\) 。
依着这个思路, 可得 \(\mu(p^2) = 0\), 再用归纳法就可得 \(\mu(p^k) = 0 \;\;(k>1)\)。
所以, 对于一般的 \(n \in N_+\),
通过例题学习基本技巧与小 trick(待补)
基本套路
最常见的套路
对于 \(\sum_{1 \le i,j \le n}\text f(gcd(i,j))\) 来说, 如果能找到 \(\text g\) 使得 \(\text f = \text g * \text 1\), 那么就有:
由于一个广为人知的式子: \(\sum_{a_i \in A} a_i = \sum_{a_i} a_i * (\:a_i在A中出现的次数\:)\), 有
\(i,j\) 的上界不同时也差不多。
整除分块
定理:对于一个固定的正整数 \(n\) 和正整数 \(k \in [1,n]\), \(\lfloor \frac{n}{k} \rfloor\) 最多有 \(O(\sqrt n)\) 种, 且使得值为 \(q\) 的最大的 \(k\) 为 \(\lfloor \frac{n}{q} \rfloor\)。
证明:再补吧。
应用:整除函数 \(Div_k(n) = \lfloor \frac{k}{n} \rfloor\) 是递减函数, 由此衍生出应用。
本题用不到的小trick
\(\text{id}(n) = n\), \(\text{id} = \text 1 * \varphi\)
更高级的套路
怎么化这个式子?
解:
枚举 \(T = kd\),
计算 \(\mu * \text t\) 的技巧
定义
其中, \(p_i\) 是第 \(i\) 小的质数。
结论:那么 \(\mu = q_1 * q_2 * \cdots\)
证明:如果看下这个式子 \((q_1 * q_2 * \cdots )(n)= \sum_{i_1i_2\cdots = n} q_1(i_1)q_2(i_2)\cdots\) ,还是挺显然的。
以此的算法及其复杂度:算法很显然, 将一个函数卷上 \(q_i\), 需要 \(O(\frac{n}{p_i})\) 的时间, 卷上 \(q_1, q_2, \cdots\) 就需要 \(O(\sum_{p_i \le n} \frac{n}{p_i}) = O(n \log\log n)\) 的时间。(不会证, 但肯定优于 \(O(n \log n)\))