积性函数及其前缀和学习笔记

二次信任 提交于 2020-02-03 00:02:49

概念常识部分

常用公式和符号

$\sum \limits_{i=1}^n i^2 = \dfrac{n(n+1)(2n+1)}{6}$

$\sum \limits_{i=1}^n i^3 = (\dfrac{n(n+1)}{2})^2$

$(i,j)=\gcd(i,j)$

$M(n)$ 表示 $n$ 的最小质因子

$[exp]$ 当表达式 $exp$ 为真时取值为 $1$,否则为 $0$

 

整除

对于一个 $n$,$\lfloor \dfrac{n}{i} \rfloor$,$1 \leq i \leq n$ 只有 $O(\sqrt n)$ 种取值。

 

$\lfloor \dfrac{\lfloor \frac{n}{i} \rfloor}{j} \rfloor = \lfloor \dfrac{n}{ij} \rfloor$ ($1 \leq i,j \leq n$)

证明:$n=kij+c,0\leq c<ij$,那么 $\lfloor \dfrac{n}{i} \rfloor = \lfloor kj+ \dfrac{c}{i} \rfloor=kj+\lfloor \dfrac{c}{i} \rfloor$,$\lfloor \dfrac{c}{i} \rfloor < j$,所以 $\lfloor \dfrac{\lfloor \frac{n}{i} \rfloor}{j} \rfloor = k + \lfloor \dfrac{\lfloor \frac{c}{i} \rfloor}{j} \rfloor = k + 0 = k$

 

数论函数

数论函数指定义域为正整数,陪域为复数的函数。

 

积性函数

对于数论函数 $f$ 若满足 $f(1)=1$,对任意 $\gcd(x,y)=1$,$f(xy)=f(x)f(y)$,则称 $f$ 为积性函数。

若对任意 $x,y$ 均成立,则称为完全积性函数。

 

积性函数

莫比乌斯函数

定义

$$\mu(1)=1$$

对于 $n>1$,把 $n$ 唯一分解成 $n=p_1^{c_1}p_2^{c_2}\cdots p_k^{c_k}$,若 $c_1=c_2=\cdots=c_k=1$,$\mu(n)=(-1)^{k}$,否则 $\mu(n)=0$。

即 $\mu(n)=0$ 当且仅当 $n$ 中有平方因子。

 

相关公式

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

证明:若 $n>1$,$n=p_1^{c_1}p_2^{c_2}\cdots p_k^{c_k}$,对答案有贡献的就只有单一质因子集合,即 $\sum \limits_{d|n}\mu(d)=\mu(1)+\mu(p_1)+\mu(p_2)+\cdots+\mu(p_1p_2)+\cdots+\mu(p_1p_2\cdots p_k)=\sum\limits_i\binom{k}{i}(-1)^i=(1-1)^k=0$

 

$\mu^2(n)=\sum \limits_{d^2|n}\mu(d)$

证明:$\mu^2(n)=1$,$n$ 是无平方因子数,$\sum\limits_{d^2|n}\mu(d)=\mu(1)=1$。

否则 $n$ 是含平方因子数,对于 $n$ 中的平方因子为集合 $S$,那么 $\sum \limits_{d^2|n}\mu(d)=\sum \limits_{i}\binom{|S|}{i}(-1)^i=0$

 

欧拉函数

定义

$\varphi(n)=\sum\limits_{i=1}^n[(i,n)=1]$

 

相关公式

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

 

证明:考虑 $n$ 个分数 $\frac{1}{n},\frac{2}{n},\cdots,\frac{n}{n}$,把它们化成最简分式 $\frac{p}{q}$,就是 $n$ 个 $q|n$,$\gcd(p,q)=1$ 的分式,分别为答案贡献 $1$。

 

$\varphi(p^a)=p^a-p^{a-1}$

 

证明:$[1,p^a]$ 以内只有 $p$ 的倍数与 $p^a$ 不互质,$p$ 的倍数有 $p^{a-1}$ 个,减去即可。

 

乘积形式

$\varphi(n)=n\prod\limits_{p|n}(1-\dfrac{1}{p})$

 

证明:相当于容斥,减去 $n$ 以内所有质因子的倍数。

 

欧拉函数与莫比乌斯函数的关系

$\varphi(n)=\sum\limits_{d|n}\mu(d)\dfrac{n}{d}$

 

证明:$\varphi(n)=\sum \limits_{i=1}^n[\gcd(i,n)=1]=\sum\limits_{i=1}^n\sum\limits_{d|(i,n)}\mu(d)=\sum\limits_{d|n}\mu(d)\sum \limits_{i=1}^n[d|i]=\sum\limits_{d|n}\mu(d)\dfrac{n}{d}$

 

 

其他积性函数

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

$I_{k}(n)=n^{k}, I(n)=n$

$\sigma_{k}(n)=\sum_{d | n} d^{k}$

$1(n)=1$

 

狄利克雷卷积

定义

对于两个数论函数 $f$ $g$,定义它们的狄利克雷卷积为 $h$

则 $h(n)=\sum\limits_{d|n}f(d)g(\dfrac{n}{d})$

记 $h=f*g$,$h(n)=(f*g)(n)$ 。

 

性质

交换律:$f*g=g*f$

结合律:$(f*g)*h=f*(g*h)$

分配律:$(f+g)*h=f*h+g*h$

单位元:$f*\epsilon=\epsilon*f=f$

封闭性:$f,g$ 为积性函数,$f*g$ 为积性函数

 

一个数论函数 $f$,若 $f(1) \neq 0$,则存在唯一的逆函数 $f^{-1}$,使得 $f*f^{-1}=\epsilon$

$f^{-1}$ 的值如下:

$f^{-1}(1)=\dfrac{1}{f(1)}$

$f^{-1}(n)=\dfrac{-1}{f(1)}\sum\limits_{d|n \wedge d<n}f(\dfrac{n}{d})f^{-1}(d)$,$n>1$

 

前面的一些式子就可以用狄利克雷卷积表示

$\varphi * 1=I$

$\mu * 1=\epsilon$

$\mu * I=\varphi$

 

莫比乌斯反演

定义

$f(n)=\sum\limits_{d|n}g(d)$

则 $g(n)=\sum \limits_{d|n}f(d)\mu(\dfrac{n}{d})$

 

证明:$f=g*1 \Leftrightarrow f*\mu=\mu*g*1=g*(\mu*1)=g* \epsilon=g(n) \Leftrightarrow g(n)=f*\mu$

套路 & 题目

到这里,线性筛加推公式可以解决大部分 $O(1e7)$ 以内的反演题目了。

推公式套路,枚举约数,通过 $\epsilon$ 进行反演。如下

$\sum\limits_{i=1}^n\sum\limits_{j=1}^n[(i,j)=1]=\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{d|(i,j)}\mu(d)=\sum\limits_{d=1}^n\mu(d)\sum \limits_{i=1}^n[d|i]\sum\limits_{j=1}^n[d|j]=\sum \limits_{d=1}^n\mu(d)\lfloor \dfrac{n}{d} \rfloor ^2$

然后就可以整除分块解决。

 

题目:

BZOJ 4816. [Sdoi2017]数字表格 题解

BZOJ 3994. [SDOI2015]约数个数和  题解

BZOJ 3529. [Sdoi2014]数表  题解

BZOJ 2820. YY的GCD  题解

BZOJ 2301. [HAOI2011]Problem b  题解

BZOJ 2154. Crash的数字表格 & 2693. jzptab  题解

SPOJ - DIVCNT2 Counting Divisors (square)  题解

HDU 6588 Function  题解

计蒜客 tsy's number  题解

计蒜客 convex hull  题解

 

杜教筛

定义

这里筛的意思不是筛素数,而是求积性函数前缀和。

有些题目数据范围在 $10^9 \sim 10^{11}$,没法线性筛做,考虑一种构造方法。

题目要求 $S(n)=\sum \limits_{i=1}^n f(n)$,存在一个前缀和易求的积性函数 $g$,它和 $f$ 的狄利克雷卷积的前缀和也易求,那么就可以求 $f$ 的前缀和。

$$\begin{aligned} & \sum_{i=1}^n (f*g)(i) \\=& \sum_{i=1}^n \sum_{d|i}f(d)g(\frac{i}{d}) \\=& \sum_{d=1}^n g(d) S(\lfloor \frac{n}{d} \rfloor) \end{aligned}$$

那么 $g(1)S(n) = \sum \limits_{i=1}^n(f*g)(i)-\sum \limits_{i=2}^n g(i)S(\lfloor \frac{n}{i} \rfloor)$

条件是 $g$ 和 $(f*g)$ 的前缀和都要比较好求。然后记忆化搜索即可。

预处理出 $O(n^{\frac{2}{3}})$ 以内的前缀和,那么总复杂度可以做到 $O(n^{\frac{2}{3}})$

 

莫比乌斯函数

1

$S(n)=\sum \limits_{i=1}^n \mu(i)$

 

因为 $\mu * 1 = \epsilon$

所以 $S(n)=1-\sum \limits_{i=2}^n S(\lfloor \dfrac{n}{i} \rfloor)$

 

2

$S(n)=\sum \limits_{i=1}^n [(i,k)=1]\mu(i)$ $(2 \leq k \leq 2000)$

 

$f(n)=[(n,k)=1]\mu(n)$,$g(n)=[(n,k)=1]$

$f*g=\sum \limits_{d|n}[(d,k)=1]\mu(d)[(\dfrac{n}{d},k)=1]=\sum \limits_{d|n}\mu(d)[(n,k)=1]=[(n,k)=1][n=1]=[n=1]$

所以 $S(n)=1-\sum \limits_{i=2}^n [(i,k)=1] S(\lfloor \dfrac{n}{i} \rfloor)$

问题变成求 $g(n)=[(n,k)=1]$ 的前缀和。

由 $(n,k)=(k,n\bmod k)$

所以 $\sum \limits_{i=1}^n [(i,k)=1]=\sum \limits_{i=1}^n [(i \bmod k, k)=1]=\sum \limits_{i=1}^{n \bmod k}[(i,k)=1]+\lfloor \dfrac{n}{k}\rfloor \sum \limits_{i=1}^k [(i,k)=1]$

预处理 $1 \sim k$ 的前缀和,那么 $g(n)$ 的前缀和就可以 $O(1)$ 得到。

 

欧拉函数

1

$S(n)=\sum \limits_{i=1}^n \varphi(i)$

 

因为 $\varphi * 1=n$

那么 $S(n)=\dfrac{n(n+1)}{2}-\sum \limits_{i=1}^nS(\lfloor \dfrac{n}{i} \rfloor)$

 

2

$S(n)=\sum \limits_{i=1}^n i^2\varphi(i)$

 

$f(n)=n^2\varphi(n)$,$g(n)=n^2$

$f*g=\sum \limits_{d|n}d^2\varphi(d)\dfrac{n^2}{d^2}=n^2\sum \limits_{d|n}\varphi(n)=n^3$

所以 $S(n)=\sum \limits_{i=1}^n i^3-\sum \limits_{i=2}^n i^2 S(\lfloor \dfrac{n}{i} \rfloor)$

 

题目

hihocoder 1456 : Rikka with Lattice

BZOJ 4652. [Noi2016] 循环之美  题解

唐老师博客里也有很多 

 

Min25 筛

待学。。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!