[笔记乱写]关于数论函数(关于卷积的一些证明+杜教筛)

数论GPBH,所以开坑

(照抄)参考

常见的数论函数

莫比乌斯函数$\mu$

1.定义:

  • $\mu (1)=1$
  • 若$d$没有平方因子,$\mu (d) = (-1)^k$,$k$为$d$的质因数个数
  • 否则$\mu (d)=0$

2.性质:

  • 对于任意正整数$n$,有$\sum \limits_{d|n}\mu (d)=[n=1]$。
  • $\mu$为积性函数。
  • $\sum \limits _{d|n}\frac{\mu(d)}{d}=\frac{\phi(n)}{n}$

欧拉函数$\varphi $

1.定义:

  • $\varphi (n)= \sum \limits _{i=1}^{n} [gcd(i,n)=1]$

2.性质:

  • $\sum \limits _{d|n} \varphi (d)=n$
  • $\varphi(n) = n * \prod (1 - \frac{1}{p_i})$
  • $a^{\varphi(m)} \equiv 1 \pmod {m}$
  • 对于$n=p^k$,有$\varphi(n) = (p - 1) * p^{k - 1}$
  • 积性函数

约数个数$d()$

1.定义:

  • RT

2.性质:积性函数

约数和$\sigma ()$

1.定义:

  • RT

2.性质:积性函数

元函数$\epsilon$

1.定义:

  • $\epsilon(n)=[n=1]$

2.性质:

  • 对于任意积性函数$f$,有$f*\epsilon=f$。
  • 积性函数

单位函数$I()$

1.定义:

  • $I(n)$恒为1。

2.性质:

  • 积性函数

恒等函数$id()$

1.定义:

  • $id(n)=n$

2.性质:

  • 积性函数

 

 狄利克雷卷积

  • 定义:对于两个数论函数$f$和$g$,它们的狄利克雷卷积为$(f*g)(n)=\sum \limits_{d|n} f(d) \cdot g(\frac{n}{d})$。
  • 性质:狄利克雷卷积满足交换律、结合律和分配律。即:$f*g=g*f$       $(f*g)*h=f*(g*h)$       $(f+g)*h=f*h+g*h$

狄利克雷卷积的一些应用:

1.证明莫比乌斯反演:

假设我们已知:$F(n)=\sum_{d|n}f(d)$

考虑利用数论函数将它化成卷积的形式:$F=f*I$

两边卷上$\mu$,得到:

$F*\mu=f*I*\mu$

结合律?

$...=f*(I*\mu)$

回忆一下$\mu$的性质:

$\sum \limits _{d|n} \mu (d)= [n=1]$

也可以写成:

$I* \mu = \epsilon$

那么有$...=f*\epsilon=f$

把它重新写成普遍形式:$f=F*\mu \rightarrow f(n)=\sum_{d|n}\mu(d)\cdot F(\frac{n}{d})$

 

2.证明$\frac{\varphi(n)}{n}=\sum \limits _{d|n}\frac{\mu(d)}{d}$

还记得$\varphi$的性质嘛?

$\sum \limits _{d|n} \varphi (d)=n$

表示成卷积的形式就是$\varphi * I = id$

跟上一个证明类似,如果两边都卷上$\mu$:

$\varphi * I * \mu = id * \mu$

$\varphi * \epsilon =id* \mu $

$\varphi = id * \mu \rightarrow \sum \limits _{d|n} \mu (d) \cdot \frac{n}{d}$

两边同时除以$n$即得证。

杜教筛

终于到了这个大坑……

杜教筛解决的是要求在低于线性时间内求积性函数前缀和的问题。

假设我们要求 $S(n)=\sum \limits _{i=1}^n f(i)$

那么首先构造两个积性函数$g$和$h$,满足$h=f*g$。

显然有:

$\sum \limits _{i=1}^{n}h(i)=\sum \limits _{i=1}^{n}\sum \limits _{d|i}g(d)\cdot f(\frac{i}{d})\\\to =\sum \limits_{d=1}^{n}g(d)\cdot\sum \limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}f({i})$

停一下。这一步可能会看起来比较懵逼,其实就是把原来先枚举每个数再枚举它的因数,变成了枚举因数并考虑$n$的范围内有多少个数包含它。

我们继续:

$\sum \limits _{i=1}^{n}h(i)=\sum \limits _{d=1}^{n}g(d)\cdot S(\lfloor\frac{n}{d}\rfloor)$

拆出第一项:

$\sum \limits _{i=1}^{n}h(i)=g(1)\cdot S(n)+\sum \limits _{d=2}^{n}g(d)\cdot S(\lfloor\frac{n}{d}\rfloor)$

$g(1)S(n)=\sum \limits _{i=1}^{n}h(i)-\sum \limits _{d=2}^{n}g(d)\cdot S(\lfloor\frac{n}{d}\rfloor)$

到了这步,如果你能快速求出$h(i)$的前缀和,就可以通过对后面那项进行整除分块来求出$S(n)$。时间复杂度为$O(n^{\frac{2}{3} })$。

比如我们要求的$f$是$\mu$,那根据$\mu*I=\epsilon$可以得到:

$S(n)=1-\sum \limits _{d=2}^{n}S(\lfloor\frac{n}{d}\rfloor)$

筛$\varphi$也是同理,利用$\varphi*I=id$即可。(其实是我懒得写了所以就同理啦QAQ)

 

(然而代码实现还不是很熟练……先咕了)

 

 

To Be Continued...

posted @ 2019-10-28 18:43  Rorschach_XR  阅读(589)  评论(6编辑  收藏  举报
//雪花飘落效果