积性函数&数论分块&迪利克雷卷积&杜教筛&莫比乌斯函数及其反演

积性函数&数论分块&迪利克雷卷积&杜教筛&莫比乌斯函数及其反演

1. 算法分析

1.1 积性函数

1.1.1 定义
  1. 若数论函数 f f f是积性函数,那么对于$ \forall gcd(a,b)=1,f(ab)=f(a)f(b)$

  2. 若数论函数f是完全积性函数,那么对于 ∀ a , b ∈ N , f ( a b ) = f ( a ) f ( b ) \forall a,b \in N,f(ab)=f(a)f(b) a,bN,f(ab)=f(a)f(b)

1.1.2 常见积性函数
  1. 莫比乌斯函数 μ ( n ) \mu(n) μ(n)
    $\mu(n)= \begin{cases} 1&n=1\ 0&n\text{ 含有平方因子}\ (-1)^k&k\text{ 为 }n\text{ 的本质不同质因子个数}\ \end{cases} $
    性质:
    性质1:若p是质数, μ ( p ) = − 1 \mu(p) = -1 μ(p)=1
    性质2:若p是质数, i ∈ N \in N N p ∤ i , μ ( p i ) = − μ ( i ) p \nmid i, \mu(p_i) = -\mu(i) pi,μ(pi)=μ(i)
    性质3: ∑ d ∣ n μ ( d ) = ε ( n ) \sum_{d|n} \mu(d) = \varepsilon(n) dnμ(d)=ε(n)
    性质4: [ g c d ( i , j ) = 1 ]    ⟺    ∑ d ∣ g c d ( i , j ) μ ( d ) [gcd(i, j) = 1] \iff \sum_{d|gcd(i, j)} \mu(d) [gcd(i,j)=1]dgcd(i,j)μ(d)

  2. 欧拉函数
    φ ( n ) = ∑ i = 1 n [ g c d ( i , n ) = 1 ] \varphi(n) = \sum_{i=1}^{n}[gcd(i, n) = 1] φ(n)=i=1n[gcd(i,n)=1]表示1~n中与n互质的数的个数
    性质:
    性质1:若p是质数, φ ( p ) = p − 1 \varphi(p) = p - 1 φ(p)=p1
    性质2: ∀ n > 1 , [ 1 , n ] \forall n>1, [1, n] n>1,[1,n]中与n互质的数的和为 n ∗ φ ( n ) / 2 n * \varphi(n) / 2 nφ(n)/2
    性质3:若p是质数,当 p ∣ i p \mid i pi时, φ ( p ∗ i ) = φ ( i ) ∗ p \varphi(p*i) = \varphi(i) * p φ(pi)=φ(i)p; 当 p ∤ i p \nmid i pi时, φ ( p ∗ i ) = φ ( i ) ∗ ( p − 1 ) \varphi(p * i) = \varphi(i) * (p-1) φ(pi)=φ(i)(p1)
    zhi

  3. 约数个数函数 d ( n ) d(n) d(n)
    若n的质因数分解式子为 ∏ i = 1 k p i a i \prod_{i=1}^{k}p_i^{a_i} i=1kpiai,则 d ( n ) = ∏ i = 1 k ( a i + 1 ) d(n) = \prod_{i=1}^{k}(a_i+1) d(n)=i=1k(ai+1)

  4. 约数和函数 δ ( n ) \delta(n) δ(n)
    若n的质因数分解式子为 ∏ i = 1 k p i a i \prod_{i=1}^{k}p_i^{a_i} i=1kpiai,则 δ ( n ) = ∏ i = 1 k ∑ j = 0 a i p i j \delta(n) = \prod_{i=1}^{k}\sum_{j=0}^{a_i}p_i^j δ(n)=i=1kj=0aipij

1.1.3 常见完全积性函数
  1. 常函数 I ( n ) = 1 I(n) = 1 I(n)=1
  2. 恒等函数 i d ( n ) = n id(n) = n id(n)=n
  3. 单位函数 ε ( n ) = [ n = 1 ] \varepsilon(n) = [n=1] ε(n)=[n=1]

1.2 迪利克雷卷积

如果 F , f , g F,f,g F,f,g满足:
F ( n ) = ∑ d ∣ n f ( d ) g ( n / d ) F(n) = \sum_{d|n}f(d)g(n/d) F(n)=dnf(d)g(n/d)
则F是f和g的迪利克雷卷积,记作 F = ( f ∗ g ) F=(f * g) F=(fg),或 F ( n ) = ( f ∗ g ) ( n ) F(n)=(f * g)(n) F(n)=(fg)(n)

性质
迪利克雷卷积满足以下性质:

  • 交换律 ( f ∗ g = g ∗ f ) (f * g = g * f) (fg=gf)
  • 结合律 ( f ∗ g ) ∗ h = f ∗ ( g ∗ h ) (f * g) * h = f * (g * h) (fg)h=f(gh)
  • 分配律 f ∗ ( g + h ) = f ∗ g + f ∗ h f * (g + h) = f * g + f * h f(g+h)=fg+fh
  • f ∗ ε = f f * \varepsilon = f fε=f

结论:
性质1: f ∗ ε = f f * \varepsilon = f fε=f
性质2: μ ∗ I = ε \mu * I = \varepsilon μI=ε
性质3: φ ∗ I = i d \varphi * I = id φI=id
性质4: μ ∗ i d = φ \mu * id = \varphi μid=φ
性质5: d = I ∗ I d = I * I d=II
性质6: δ = I ∗ i d \delta = I * id δ=Iid
其中,标黑的公式在莫比乌斯反演的推导里会被用到

1.3 数论分块

数论分块就是要找一个含有 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor in的求和式子
对于任意一个i(i<=n),找到一个最大的j,使得 ⌊ n i ⌋ = ⌊ n j ⌋ \lfloor \frac{n}{i} \rfloor = \lfloor \frac{n}{j} \rfloor in=jn, 此时j = j = ⌊ n ⌊ n i ⌋ ⌋ j=\left\lfloor\frac{n}{\left\lfloor\frac{n}{i}\right\rfloor}\right\rfloor j=inn,因此每次可以把[i, j]分为一块,分块求和即可。
可以证明[1, n]分块的个数小于等于 2 ∗ n 2*\sqrt n 2n
一维分块形式: ∑ i = 1 n ⌊ n i ⌋ \sum_{i=1}^{n} \lfloor \frac{n}{i} \rfloor i=1nin
二维分块形式: ∑ i = 1 m i n ( n , m ) ⌊ n i ⌋ ⌊ m i ⌋ \sum_{i=1}^{min(n, m)} \lfloor \frac{n}{i} \rfloor \lfloor \frac{m}{i} \rfloor i=1min(n,m)inim

1.4 杜教筛

目的: 杜教筛被用来处理数论函数的前缀和问题。对于求解一个前缀和,杜教筛可以在低于线性时间的复杂度内求解
方法:
对于数论函数 f f f,要求计算 S ( n ) = ∑ i = 1 n f ( i ) S(n) = \sum_{i=1}^{n} f(i) S(n)=i=1nf(i),如果能够构造出 S ( n ) S(n) S(n)关于 S ( ⌊ n i ⌋ ) S\left(\left\lfloor\frac{n}{i}\right\rfloor\right) S(in)的表达式,那么就可以递归求解出

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值