zky数论选讲学习笔记
一维狄利克雷卷积
对于数论函数 \(f,g\),定义:
性质
- 交换律 \(f*g=g*f\)
- 结合律 \(f*g*h=f*(g*h)\)
- 分配率 \(f*(g+h)=f*g+f*h\)
逆元
对于数论函数 \(f\),其狄利克雷卷积逆为 \(f^{-1}\),满足 \(f*f^{-1}=\varepsilon\)。
首先 \((f*f^{-1})(1)=f(1)f^{-1}(1)=1\) 所以 \(f\) 有逆元的必要条件为 \(f(1)=1\)
对于 \(n>1\) 由于:
所以:
所以 \(f\) 有逆元当且仅当 \(f(1)\ne 1\)。
当 \(f\) 为积性函数时,\(f^{-1}\) 必然存在且也为积性函数。证明如下:
首先 \(f(1)\) 成立,现在设 \(a,b\) 互质,且对 \(a_0\le a,b_0\le b\)(不同时取等号),有 \(f^{-1}(a_0b_0)\) 是积性函数,则:
因为 \(f(1)=1\),将它分为前后两部分:
因此,\( f^{-1} \) 是一个积性函数。
除法
\(\dfrac fg:=f*g^{-1}\)
Powerful Number
一个数 \(n=\prod_{i}p_i^{a_i}\) 被成为 PN,当且仅当 \(\forall i,a_i\ne 1\)。他可以表示为 \(a^2b^3\),只需要将所有 \(a_i\) 拆成 \(2x+3y\) 的形式即可。\(n\) 范围以内的PN可以暴力搜索。
PN筛
求一个积性函数 \(f\) 的前 \(n\) 项和,可以考虑构造一个积性函数 \(g\) 使得对于所有质数 \(p\),有 \(g(p)=f(p)\),设 \(h=\dfrac fg\),则因为 \((h*g)(p)=h(p)g(1)+h(1)g(p)=f(p)\) 得到 \(h(p)=0\),所以 \(h\) 仅在 PN 处有值。
因为
所以只要 \(g\) 的前缀和很好求,就可以求的 \(f\) 的前缀和。
例题
给定 \(c\),积性函数函数 \(f(x)\) 满足 \(f(p^k ) = p^{ c⌊\frac k 2 ⌋}\) 。求 \(\sum_{i=1}^nf(i)\),取膜。\(n\le 1.2\times 10^{11}\)
解法如下:
\(g(x)=1\),由 \(f(p^k)=\sum_{i=0}^kg(p^i)h(p^{k-i})\) 得到 \(h\) 的指,在筛 PN 时一起筛出来即可。
上面这个问题实际上在告诉我们,做积性函数前缀和时,对于 \(k ≥ 2,f (p^ k )\)的取值没那么重要。
二维积性函数
我们称二维数论函数 \(f (x, y)\) 是二维积性函数,当且仅当 \(∀a, b, c, d\) 使得 \(gcd(ab, cd) = 1\),都有 \(f (ac, bd) = f (a, b)f (c, d)\)。
设 \(x=\prod_{i}p_i^{a_i}\),\(y=\prod_ip_i{b_i}\) 那么 \(f(x,y)=\prod_if(p_i^{a_i},p_i^{b_i})\)。
二维狄利克雷卷积
定义 设 \( f \) 和 \( g \) 为二维数论函数,其二维 Dirichlet 卷积 \( h = f * g \) 定义为: \[ h(x, y) = \sum_{\substack{u | x \ v | y}} f(u, v)g\left(\frac{x}{u}, \frac{y}{v}\right), \] 其中 \( u \) 取遍 \( x \) 的所有正因数,\( v \) 取遍 \( y \) 的所有正因数。
单位元 \(\varepsilon(x,y)=[x=1]\land[y=1]\)。
他也满足一维 PN 筛的例子,这里证明积性函数卷积后的结果依然积性函数:
设 \(x=\prod_{i}p_i^{a_i}\),\(y=\prod_ip_i{b_i}\) 。
二维PN筛
一道例题:
(UOJ Round 27 C 的 70 分部分分)给定一个积性函数 \(S\),求\(∑^n_{i=1}∑^n_{j=1} S(ij)\)。
解法如下:
设 \(f(x,y)=S(xy)\)。那么题目要求 \(f\) 的二维前缀和。
类似 PN,考虑设计 \(g(x,y)\) 满足 \(g(p^a,p^b)=f(p^a,1)f(1,p^b)\)。这个函数的二维前缀和很好求,有 \(\sum_{i\le n}\sum_{i\le m}g(i,j)=(\sum_{i\le n}S(i))(\sum_{j\le m}S(j))\)。这用线性筛可以解决。
然后令 \(h=\dfrac fg\),发现 \(f(1,p^k)=h(1,1)g(1,p^k)+g(1,1)h(1,p^k)\) 得到 \(h(1,p^k)=h(p^k,1)=0\)。
根据
筛出 \( f(p^a, 1), f(1, p^b) \) 的前缀和以及一些预处理之后,考虑暴力枚举 \( h \) 有值得位置。复杂度就是 \( x, y \in [1, n] \) 且 \( h(x, y) \neq 0 \) 的 \((x, y)\) 个数。
复杂度证明:设 \(S(t)\) 表示 \(xy=t\) 的满足条件的 \((x,y)\) 的对数,设 \(x=\prod_{i}p_i^{a_i},y=\prod_ip_i^{b_i}\),则要求 \(\forall i,[a_i>0]=[b_i>0]\),有 \(S(p^t)=t-1\),并且 \(S(p)\) 为积性函数。
根据 PN 的理论和一堆复杂的分析,\(\sum_{i=1}^ns(i)=\mathcal O(\sqrt n)\),复杂度为 \(\mathcal O(n)\)。
然后根据一般的积性函数想法,确定 \(h\) 只需要确定在素数幂处的值。因为 \(g\) 在素数处的值是已知的,可以直接暴搜出来,也可以结合打表找规律。
高维狄利克雷卷积
这种做法可以拓展到高维,比如SDOI2018 旧试题。

浙公网安备 33010602011771号