证明:\((\epsilon * f)(n) = \sum\limits_{d \mid n}[d = 1]f\left(\dfrac n d\right) = f(n)\) 。证毕 。
因此单位函数 \(\epsilon\) 为狄利克雷卷积的 单位元 。
既然存在单位元,就可以据此定义数论函数 \(f\) 的逆元 \(f ^ {-1}\),满足 \(f * f ^ {-1} = \epsilon\) 。
性质 3:\(f\) 可逆当且仅当 \(f(1)\neq 0\) 。证明:设 \(g = f ^ {-1}\) 。当 \(f(1) = 0\) 时,\(f(1)g(1) = 0\) 且 \(f(1) g(1) = \epsilon(1) = 1\),矛盾 。当 \(f(1) \neq 0\) 时,\(g(1) = \dfrac 1 {f(1)}\) , 对 \(n > 1\) 的 \(g(x)\) 通
过 \(\sum\limits_{d\mid x} g(d)f\left(\dfrac n d\right) = 0\) 得到递推式 \(g(n) = -\dfrac{\sum\limits_{d \mid n, d \neq n} g(d)f\left(\dfrac n d\right)} {f(1)}\) 。这同时说明 逆元唯一 。证毕 。
性质 4:\(f = g\) 的充要条件是 \(f * h = g * h\),其中 \(h(1) \neq 0\) 。证明:\(f * h = g * h\Rightarrow f * h * h ^ {-1} = g * h * h ^ {-1} \Rightarrow f = g\),充分性得证 。必要性显然 。证毕 。
性质 5:积性函数的狄利克雷卷积是积性函数 。证明:考虑积性函数 \(f\) 和 \(g\) 的狄利克雷卷积 \(h\) 。若 \(a\perp b\) , 则
\[\begin{aligned}h(n)h(m) & = \left(\sum\limits_{d_1\mid n} f(d_1) g\left(\dfrac n {d_1} \right)\right)\left(\sum\limits_{d_2\mid m} f(d_2) g\left(\dfrac m {d_2} \right)\right) \\ & = \sum\limits_{d\mid nm} f(d) g\left(\dfrac {nm}{d} \right) \\ & = h(nm)\end{aligned}\]其中 \(d = d_1d_2\) 。第二步依赖于 \(f\) 和 \(g\) 的积性:\(f(d_1) f(d_2) = f(d_1d_2) = f(d)\) 。证毕 。
性质 6:积性函数的逆元是积性函数 。证明:设 \(g = f ^ {-1}\) 。根据 \(f\) 的积性可知 \(g(1) = \dfrac 1 {f(1)} = 1\),所以 \(g(n) = g(1) g(n)\) 。
考虑归纳法 。对于 \(n, m > 1\) 且 \(n\perp m\),假设对于任意 \(xy < nm\) 且 \(x\perp y\) 均有 \(g(xy) = g(x)g(y)\) 。因 \(n = 1\) 或 \(m = 1\) 时命题成立,只需证明 \(g(nm) = g(n)g(m)\) 。
\[\begin{aligned}g(nm) & = -\sum\limits_{d \mid nm, d \neq nm} g(d)f\left(\dfrac {nm} d\right) \\& = -\sum\limits_{a\mid n, b\mid m, ab\neq nm} g(a) g(b) f\left(\dfrac n a\right) g\left(\dfrac m b\right) \\& = f(1) ^ 2g(n)g(m) -\sum\limits_{a\mid n} g(a) f\left(\dfrac n a\right) \sum\limits_{b\mid m}g(b) g\left(\dfrac m b\right) \\& = g(n)g(m) - \epsilon(n) - \epsilon(m)\end{aligned}\]因为 \(n, m > 1\),所以 \(\epsilon(n) = \epsilon(m) = 0\),所以 \(g(nm) = g(n)g(m)\) 。证毕 。
综合性质 5 和性质 6,两个积性函数的积与商都是积性函数 。注意,积性函数的和与差不是积性函数 。
3.2 线性筛 Dirichlet 卷积根据积性函数的狄利克雷卷积是积性函数这一结论,我们尝试在线性时间内筛出 \(h = f * g\) 。
写出 \(h\) 的表达式,有
\[h(n) =\begin{cases}1 & n = 1 \\\sum_{c = 0} ^ k f(p ^ c)g(p ^ {k - c}) & n = p ^ k \\h(p ^ k)h(m) & n = p ^ k m(m > 1, p\nmid m)\end{cases}\]对于第一和第三种情况,线性筛时可以总代价 \(\mathcal{O}(n)\) 求出 。关键在于 Case 2,若 \(f\) 和 \(g\) 在质数幂处的取值已经求出,则需要 \(\mathcal{O}(k)\) 的时间计算 。
- 特别的,当 \(f\) 为完全积性函数时,\(h(p ^ k)\) 可以写作 \(f(p)h(p ^ {k - 1}) + g(p ^ k)\),可以 \(\mathcal{O}(1)\) 方便地计算 。对于 \(g\) 同理 。
\[T(n) = \sum\limits_{x = 1} ^ {\log_2 n} x\pi(\sqrt[k]n) = \sum\limits_{x = 1} ^ {\log_2 n} \dfrac {x\sqrt[x] n}{\ln \sqrt[x] n} = \dfrac 1 {\ln n} \sum\limits_{x = 1} ^ {\log_2 n} x ^ 2\sqrt[x] n\]感性理解,\(x ^ 2 \sqrt[x]{n}\) 随着 \(n\) 增大,\(x\) 增大时 \(x ^ 2\) 一项增大的速度远小于 \(\sqrt[x]{n}\) 衰减的速度 。从这一点入手,考虑证明 \(x ^ 2 \sqrt[x] n \leq \mathcal{O}(n)\) 。
当 \(x = 1\) 时显然成立 , 否则考虑 \(x\in [2, \log_2 n]\) 时 \(x ^ 2\) 的最大值 \(\log_2 ^ 2 n\) 与 \(\sqrt[x] n\) 的最大值 \(\sqrt n\) 之积,因为当 \(x\to +\infty\) 时 \(\log_2 x\) 是 \(\sqrt x\) 的高阶无穷小,所以 \(\mathcal{O}(\sqrt n\log ^ 2 n) \leq \mathcal{O}(n)\) 。
因此,\(T(n) \leq \dfrac 1 {\ln n} \sum\limits_{i = 1} ^ {\log_2 n} \mathcal{O}(n) = \mathcal{O}(n)\) 。
综上 , 使用线性筛求出两个在质数幂处取值已知的积性函数的狄利克雷卷积在 \(1\sim n\) 处的取值的时间复杂度为 \(\mathcal{O}(n)\) 。
我们得到了积性函数可线性筛的更弱的条件:可以 \(\mathcal{O}(k)\) 时间计算质数幂处的取值 。
3.3 狄利克雷前缀和前置知识:高维前缀和 。
任意数论函数 \(f\) 卷常数函数 \(1\) 等价于对 \(f\) 做 狄利克雷前缀和:令 \(g = f * 1\),则 \(g(n) = \sum\limits_{d\mid n} f(d)\) 。
推荐阅读
- 前端程序员学习 Golang gin 框架实战笔记之一开始玩 gin
- 1 Libgdx游戏学习——环境配置及demo运行
- 苹果ipad分屏功能怎么使用(ipad 9可以分屏学习吗)
- Go设计模式学习准备——下载bilibili合集视频
- 学习ASP.NET Core Blazor编程系列五——列表页面
- 七 Netty 学习:NioEventLoop 对应线程的创建和启动源码说明
- ZCTF note3:一种新解法
- 学习ASP.NET Core Blazor编程系列四——迁移
- 五 Netty 学习:服务端启动核心流程源码说明
- 【前端必会】走进webpack生命周期,另类的学习方法