Loading

zky数论选讲学习笔记

一维狄利克雷卷积

对于数论函数 \(f,g\),定义:

\[(f*g)(n)=\sum_{d|x}f(d)g(\frac xd) \]

性质

  • 交换律 \(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(1)f^{-1}(n)+\sum_{d|x,d>1}f(d)f^{-1}(\frac nd)=0 \]

所以:

\[f^{-1}(n)=-\frac{1}{f(1)}\sum_{d|x,d>1}f(d)f^{-1}(\frac nd) \]

所以 \(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)\) 是积性函数,则:

\[\begin{aligned} f^{-1}(ab)&=-\frac{1}{f(1)}\sum_{d|ab,d>1}f(ab)f^{-1}(\frac {ab}d) \end{aligned} \]

因为 \(f(1)=1\),将它分为前后两部分:

\[\begin{aligned} 原式&=-\sum_{d_1|a,d_1>1}\sum_{d_2|b,d_2>1}f(d_1)f(d_2)f^{-1}(\frac a{d_1})f^{-1}(\frac b{d_2})\\ -\sum_{d_2}f(d_2)f^{-1}(\frac{}) & \end{aligned} \]

\[\begin{align*} \text{前半部分} &= - \sum_{\substack{d_1 | a \\ d_1 > 1}} \sum_{\substack{d_2 | b \\ d_2 > 1}} f(d_1 d_2) f^{-1} \left( \frac{ab}{d_1 d_2} \right) \\ &= - \sum_{\substack{d_1 | a \\ d_1 > 1}} \sum_{\substack{d_2 | b \\ d_2 > 1}} f(d_1) f(d_2) f^{-1} \left( \frac{a}{d_1} \right) f^{-1} \left( \frac{b}{d_2} \right) \\ &= - \left( \sum_{\substack{d_1 | a \\ d_1 > 1}} f(d_1) f^{-1} \left( \frac{a}{d_1} \right) \right) \left( \sum_{\substack{d_2 | b \\ d_2 > 1}} f(d_2) f^{-1} \left( \frac{b}{d_2} \right) \right) \\ &= - \left( -f(1) f^{-1}(a) \right) \cdot \left( -f(1) f^{-1}(b) \right) \\ &= - f^{-1}(a) f^{-1}(b) \end{align*} \]

\[\begin{align*} \text{后半部分} &= - \sum_{\substack{d_2 | b \\ d_2 > 1}} f(d_2) f^{-1} \left( \frac{b}{d_2} \right) f^{-1}(a) - \sum_{\substack{d_1 | a \\ d_1 > 1}} f(d_1) f^{-1} \left( \frac{a}{d_1} \right) f^{-1}(b) \\ &= f(1) f^{-1}(b) f^{-1}(a) + f(1) f^{-1}(a) f^{-1}(b) \\ &= 2 f^{-1}(a) f^{-1}(b) \end{align*} \]

\[\text{原式} = \text{前半部分} + \text{后半部分} = -f^{-1}(a) f^{-1}(b) + 2 f^{-1}(a) f^{-1}(b) = f^{-1}(a) f^{-1}(b) \]

因此,\( 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 处有值。
因为

\[\begin{aligned} \sum_{1}^nf(i)&=\sum_{1}^n\sum_{xy=i}g(x)h(y)\\ &=\sum_{xy\le i}g(x)h(y) \\&=\sum_{y\in PN}h(y)\sum_{x=1}^{\lfloor\frac nx\rfloor}g(x) \end{aligned} \]

所以只要 \(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}\)

\[\begin{aligned} h(x,y)&=\sum_{0\le \alpha_i\le a_i}\sum_{0\le \beta_i\le b_i}\prod_{i=1}f(p_{i}^{a_i},p_{i}^{\beta_i})g(p_{i}^{a_i-a_i},p_{i}^{b_i-\beta_i}) \\&=\prod_i(\sum_{0\le \alpha_i\le a_i}\sum_{0\le \beta_i\le b_i}f(p_{i}^{a_i},p_{i}^{\beta_i})g(p_{i}^{a_i-a_i},p_{i}^{b_i-\beta_i})) \\&=\prod_ih(p_i^{a_i},p_i^{b_i}) \end{aligned} \]

二维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\)

根据

\[\sum_{i=1}^n \sum_{j=1}^n f(i,j) = \sum_{i=1}^n \sum_{j=1}^n \sum_{u|i} \sum_{v|j} h(u,v) g(i/u,j/v) \]

\[= \sum_{u,v} h(u,v) \left( \sum_{i \leq \frac{n}{u}, j \leq \frac{n}{v}} g(i,j) \right) \]

筛出 \( 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 旧试题。

posted @ 2025-07-03 18:50  lupengheyyds  阅读(38)  评论(0)    收藏  举报