莫比乌斯反演
\(\mathit{Möbius反演}\)
前置
前置函数
单位根函数 \(\epsilon(x)\)
当 \(x = 1\) 时,\(\epsilon(x) = 1\);当 \(x \neq 1\) 时,\(\epsilon(x) = 0\)。
幂函数 \(Id_k(x)\)
\(Id_k(x) = x^k\)
特别的,\(Id_1(x) = x\),\(Id_0(x) = 1\)。
\(Id_0(x)\) 被称为常函数,简记为 \(I\)。
除数和函数 \(\sigma(x)\)
特别的,
- \(\sigma_1(x) = \sum_{d|x} d\),被称为因数和函数,简记为:\(\sigma(x)\)。
- \(\sigma_0(x) = \sum_{d|x} 1\),被称为因数个数函数,简记为:\(\tau(x)\)。
欧拉函数 \(\varphi(x)\)
\(\varphi(x)\) 是小于等于 \(x\) 的正整数中与 \(x\) 互质的数的个数。
莫比乌斯函数 \(\mu(x)\)
积性性质
上述函数皆为积性函数,即:
所有积性函数都可以用线性筛在 \(O(n)\) 时间内预处理出 \(f(1), f(2), \dots, f(n)\)。
前置定理
数论卷积
设 \(f, g, h\) 是定义在正整数集上的函数,若对于所有正整数 \(n\),都有
则称 \(h\) 为 \(f\) 和 \(g\) 的数论卷积,记作 \(h = f * g\)。
\(\mu(x)\) 的定义
即:\(\mu(n)\) 与 \(I\) 互为逆元。
于是有:
莫比乌斯反演公式
设 \(f(n)\) 和 \(g(n)\) 是定义在正整数集上的两个函数。对于所有正整数 \(n\),
若有:
则有:
证明:用 \(f(n)\) 表示 \(g(n)\) 的过程等价于 \(f(n) * I = g(n)\),两边与 \(\mu(n)\) 卷积,得 \(f(n) = g(n) * \mu(n)\)。
*莫比乌斯反演不只局限于加法,还可以推广到乘法等其他运算(与阿贝尔群内即可)。
如:
推式子常用技巧
可将“互质”条件转化为“除数”条件,从而使用莫比乌斯反演或数论分块。
例题
Omega Numbers
直接求肯定没法求,显然是要对乘积的 \(\omega\) 等一一个数的数进行计数。直接计不好记,但我们注意到 \(\omega_{\max} \le 6\),且有 \(\omega(a_i \times a_j) = \omega(a_i) + \omega(a_j) - \omega(\gcd(a_i, a_j))\)。我们设 \(dp_{i, j}\) 表示 \(\omega(a_x) + \omega(a_y) = j\) 且 \(\gcd (a_x, a_y) = i\) 的 \((x, y)\) 有序点对(包括 \(x = y\))个数,那么答案显然为 \(\sum_i \sum_j (j - \omega(i)) ^ k\)。直接算 \(dp\) 数组,我们不妨设 \(f_{i, j}\) 表示 \(i \mid a_x\) 且 \(i \mid a_y\) 且 \(\omega(a_x) + \omega(a_y) = j\) 的 \((x, y)\) 个数,显然,有:
我们发现 \(f\) 是好算的,我们只需开一个 \(cnt_{i, j}\) 表示 \(i \mid a_x\) 且 \(\omega(a_x) = j\) 的 \(x\) 的个数,对于每一个 \(cnt_i\) 进行一下加法卷积就是 \(f_i\)。那么我们有了 \(f\) 要求 \(dp\),根据莫比乌斯反演,有:
做完了。注意要去重,因为直接算出来的答案中 \((x, y)\) 是有序点对且有可能 \(x = y\)。

浙公网安备 33010602011771号