莫比乌斯反演、杜教筛

莫比乌斯反演

莫比乌斯反演基本形式:

对于一个函数 f ( x ) f(x) f(x)

g ( x ) = ∑ x ∣ d f ( d ) g(x)=\sum _{x \mid d} f(d) g(x)=xdf(d),那么

f ( x ) = ∑ x ∣ d μ ( d x ) ⋅ g ( d ) f(x)=\sum _{x \mid d} \mu(\frac {d} {x}) \cdot g(d) f(x)=xdμ(xd)g(d)


1 1 1 f ( x ) = 1 f(x)=1 f(x)=1

e e e f ( x ) = [ x = 1 ] f(x) = [x = 1] f(x)=[x=1]

i d id id f ( x ) = x f(x) = x f(x)=x


推式子:

  1. 1到 n n n n n n互质的数的个数: ∑ i = 1 n [ g c d ( i , n ) = 1 ] \sum _{i=1} ^{n} [gcd (i, n) = 1] i=1n[gcd(i,n)=1]

    f ( x ) = ∑ i = 1 n [ g c d ( i , n ) = x ] f(x)=\sum _{i=1} ^{n} [gcd (i, n) = x] f(x)=i=1n[gcd(i,n)=x]

    g ( x ) = ∑ x ∣ d f ( d ) = ∑ x ∣ d ∑ i = 1 n [ g c d ( i , n ) = d ] = ∑ i = 1 n [ x ∣ g c d ( i , n ) ] = { ⌊ n x ⌋ , x ∣ n 0 , x ̸ ∣ n g(x) = \sum _{x \mid d} f(d) = \sum_{x \mid d} \sum _{i=1} ^{n} [gcd (i, n) = d] = \sum _{i=1} ^{n} [x \mid gcd (i, n)] \\ = \begin {cases} \lfloor \frac {n} {x} \rfloor, & x \mid n \\ 0, & x \not\mid n \end {cases} g(x)=xdf(d)=xdi=1n[gcd(i,n)=d]=i=1n[xgcd(i,n)]={xn,0,xnx̸n

    由莫比乌斯反演得:

    f ( x ) = ∑ x ∣ d μ ( d x ) ⋅ g ( d ) = { ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ , d ∣ n 0 , d ̸ ∣ n = ∑ d ∣ n ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ f(x) = \sum _{x \mid d} \mu(\frac {d} {x}) \cdot g(d) = \begin {cases} \sum_{x \mid d} \mu(\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor, & d \mid n \\ 0, & d \not\mid n \end {cases} \\ = \sum_ {d \mid n} \sum _{x \mid d} \mu (\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor f(x)=xdμ(xd)g(d)={xdμ(xd)dn,0,dnd̸n=dnxdμ(xd)dn

    所求式子即为 f ( 1 ) = ∑ d ∣ n μ ( d ) ⋅ ⌊ n d ⌋ f(1) = \sum _{d \mid n} \mu (d) \cdot \lfloor \frac {n} {d} \rfloor f(1)=dnμ(d)dn

    根据欧拉函数定义,所求即为 φ ( n ) \varphi(n) φ(n)

    因此 φ ( n ) = ∑ d ∣ n μ ( d ) ⋅ n d = ∑ d ∣ n μ ( n d ) ⋅ d \varphi (n) = \sum _{d \mid n} \mu (d) \cdot \frac {n} {d} = \sum _{d \mid n} \mu (\frac n d) \cdot d φ(n)=dnμ(d)dn=dnμ(dn)d


  2. 1D gcd sum: ∑ i = 1 n g c d ( i , n ) = ∑ d ∣ n φ ( d ) ⌊ n d ⌋ \sum _{i=1} ^{n} gcd (i, n)=\sum _{d \mid n} \varphi(d) \lfloor \frac {n}{d} \rfloor i=1ngcd(i,n)=dnφ(d)dn

    ∑ i = 1 n g c d ( i , n ) = ∑ d = 1 n d ∑ i = 1 n [ g c d ( i , n ) = d ] \sum_{i=1} ^{n} gcd(i, n) = \sum _{d=1} ^{n} d \sum _{i=1} ^{n} [gcd (i,n) = d] i=1ngcd(i,n)=d=1ndi=1n[gcd(i,n)=d]

    f ( x ) = ∑ i = 1 n [ g c d ( i , n ) = x ] f(x) = \sum _{i = 1} ^{n} [gcd(i, n) = x] f(x)=i=1n[gcd(i,n)=x]

    g ( x ) = ∑ x ∣ d f ( d ) = ∑ x ∣ d ∑ i = 1 n [ g c d ( i , n ) = d ] = ∑ i = 1 n [ x ∣ g c d ( i , n ) ] = { ⌊ n x ⌋ , x ∣ n 0 , x ̸ ∣ n g(x) = \sum _{x \mid d} f(d) = \sum _{x \mid d} \sum _{i=1} ^{n} [gcd (i, n) = d] \\ = \sum _{i=1} ^{n} [x \mid gcd (i, n)] = \begin {cases} \lfloor \frac {n} {x} \rfloor, & x \mid n \\ 0, & x \not\mid n \end {cases} g(x)=xdf(d)=xdi=1n[gcd(i,n)=d]=i=1n[xgcd(i,n)]={xn,0,xnx̸n

    由莫比乌斯反演得:

    f ( x ) = ∑ x ∣ d μ ( d x ) ⋅ g ( d ) = { ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ , d ∣ n 0 , d ̸ ∣ n = ∑ d ∣ n ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ f(x) = \sum _{x \mid d} \mu(\frac {d} {x}) \cdot g(d) = \begin {cases} \sum_{x \mid d} \mu(\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor, & d \mid n \\ 0, & d \not\mid n \end {cases} \\ = \sum_ {d \mid n} \sum _{x \mid d} \mu (\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor f(x)=xdμ(xd)g(d)={xdμ(xd)dn,0,dnd̸n=dnxdμ(xd)dn

    代回得:
    ∑ i = 1 n g c d ( i , n ) = { ∑ d = 1 n d ∑ d ∣ x μ ( x d ) ⋅ ⌊ n x ⌋ , x ∣ n 0 , x ̸ ∣ n = ∑ x ∣ n ∑ d ∣ x d ⋅ μ ( x d ) ⋅ ⌊ n x ⌋ = ∑ x ∣ n φ ( x ) ⋅ ⌊ n x ⌋ \sum_{i=1} ^{n} gcd(i, n) = \begin {cases} \sum _{d=1} ^{n} d \sum _{d \mid x} \mu(\frac {x} {d}) \cdot \lfloor \frac {n} {x} \rfloor, & x \mid n \\ 0, & x \not\mid n \end {cases} \\ = \sum_{x \mid n} \sum _{d \mid x} d \cdot \mu(\frac {x} {d}) \cdot \lfloor {\frac {n} {x}} \rfloor= \sum _{x \mid n} \varphi (x) \cdot \lfloor {\frac {n} {x}} \rfloor i=1ngcd(i,n)={d=1nddxμ(dx)xn,0,xnx̸n=xndxdμ(dx)xn=xnφ(x)xn

    (参考 φ ( n ) = ∑ d ∣ n μ ( n d ) ⋅ d \varphi (n) = \sum _{d \mid n} \mu (\frac n d) \cdot d φ(n)=dnμ(dn)d)

    ∑ i = 1 n g c d ( i , n ) = ∑ d ∣ n φ ( d ) ⌊ n d ⌋ \sum _{i=1} ^{n} gcd (i, n)=\sum _{d \mid n} \varphi(d) \lfloor \frac {n}{d} \rfloor i=1ngcd(i,n)=dnφ(d)dn


  3. 2D gcd sum: ∑ i = 1 n ∑ j = 1 m g c d ( i , j ) \sum _{i=1} ^{n} \sum _{j=1} ^{m} gcd (i, j) i=1nj=1mgcd(i,j)

    ∑ i = 1 n ∑ j = 1 m g c d ( i , j ) = ∑ d = 1 n d ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = d ] \sum _{i=1} ^{n} \sum _{j=1} ^{m} gcd (i, j) = \sum _{d=1} ^{n}d \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j) = d] i=1nj=1mgcd(i,j)=d=1ndi=1nj=1m[gcd(i,j)=d]

    f ( x ) = ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = x ] f(x) = \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j) = x] f(x)=i=1nj=1m[gcd(i,j)=x]

    g ( x ) = ∑ x ∣ d f ( d ) = ∑ x ∣ d ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = d ] = ∑ i = 1 n ∑ j = 1 m [ x ∣ g c d ( i , j ) ] = ⌊ n x ⌋ ⌊ m x ⌋ g(x)=\sum _{x \mid d} f(d) = \sum _{x \mid d} \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j) = d] \\ = \sum _{i=1} ^{n} \sum _{j=1} ^{m} [x \mid gcd (i, j)] = \lfloor \frac {n} {x} \rfloor \lfloor \frac {m} {x} \rfloor g(x)=xdf(d)=xdi=1nj=1m[gcd(i,j)=d]=i=1nj=1m[xgcd(i,j)]=xnxm

    由莫比乌斯反演得:

    f ( x ) = ∑ x ∣ d μ ( d x ) ⋅ g ( d ) = ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ ⌊ m d ⌋ f(x)=\sum _{x \mid d} \mu (\frac {d} {x}) \cdot g(d) = \sum _{x \mid d} \mu (\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor \lfloor \frac {m} {d} \rfloor f(x)=xdμ(xd)g(d)=xdμ(xd)dndm

    代回得:
    ∑ d = 1 n d ⋅ f ( d ) = ∑ d = 1 n d ∑ d ∣ x μ ( x d ) ⋅ ⌊ n x ⌋ ⌊ m x ⌋ = ∑ x = 1 n ∑ d ∣ x d ⋅ μ ( x d ) ⋅ ⌊ n x ⌋ ⌊ m x ⌋ = ∑ x = 1 n φ ( x ) ⋅ ⌊ n x ⌋ ⌊ m x ⌋ \sum _{d=1} ^{n}d \cdot f(d) = \sum _{d=1} ^n d \sum _{d \mid x} \mu (\frac {x} {d}) \cdot \lfloor \frac {n} {x} \rfloor \lfloor \frac {m} {x} \rfloor \\ = \sum _{x=1} ^n \sum _{d \mid x} d \cdot \mu (\frac x d) \cdot \lfloor \frac {n} {x} \rfloor \lfloor \frac {m} {x} \rfloor = \sum _{x=1} ^n \varphi (x) \cdot \lfloor \frac {n} {x} \rfloor \lfloor \frac {m} {x} \rfloor d=1ndf(d)=d=1nddxμ(dx)xnxm=x=1ndxdμ(dx)xnxm=x=1nφ(x)xnxm


  4. 1…n和1…m中互质的数的对数

    ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = 1 ] \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j)=1] i=1nj=1m[gcd(i,j)=1]

    f ( x ) = ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = x ] f(x) = \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j) = x] f(x)=i=1nj=1m[gcd(i,j)=x]

    由莫比乌斯反演得:

    f ( x ) = ∑ x ∣ d μ ( d x ) ⋅ g ( d ) = ∑ x ∣ d μ ( d x ) ⋅ ⌊ n d ⌋ ⌊ m d ⌋ f(x)=\sum _{x \mid d} \mu (\frac {d} {x}) \cdot g(d) = \sum _{x \mid d} \mu (\frac {d} {x}) \cdot \lfloor \frac {n} {d} \rfloor \lfloor \frac {m} {d} \rfloor f(x)=xdμ(xd)g(d)=xdμ(xd)dndm

    所求即 ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = 1 ] = f ( 1 ) = ∑ d = 1 n μ ( d ) ⋅ ⌊ n d ⌋ ⌊ m d ⌋ \sum _{i=1} ^{n} \sum _{j=1} ^{m} [gcd (i, j)=1] = f(1) = \sum _{d=1} ^n \mu (d) \cdot \lfloor \frac {n} {d} \rfloor \lfloor \frac {m} {d} \rfloor i=1nj=1m[gcd(i,j)=1]=f(1)=d=1nμ(d)dndm


杜教筛

求积性函数 f ( i ) f(i) f(i)的前缀和 S ( i ) S(i) S(i)

S ( n ) = ∑ i = 1 n f ( i ) S(n) = \sum _{i=1} ^n f(i) S(n)=i=1nf(i)

杜教筛:

找一个积性函数 g ( i ) g(i) g(i),做 g g g f f f的狄利克雷卷积

( g ∗ f ) ( i ) = ∑ d ∣ i g ( d ) f ( i d ) (g * f) (i) = \sum _{d \mid i} g(d) f(\frac i d) (gf)(i)=dig(d)f(di)

再做一下卷积的前缀和

∑ i = 1 n ( g ∗ f ) ( i ) = ∑ i = 1 n ∑ d ∣ i g ( d ) f ( i d ) \sum _{i=1} ^n (g*f)(i) = \sum _{i=1} ^n \sum _{d \mid i} g(d) f(\frac i d) i=1n(gf)(i)=i=1ndig(d)f(di)

d d d提出: ∑ d = 1 n g ( d ) ∑ d ∣ i f ( i d ) = ∑ d = 1 n g ( d ) ∑ i = 1 n d f ( i ) = ∑ d = 1 n g ( d ) S ( n d ) \sum _{d=1} ^n g(d) \sum_{d \mid i} f(\frac i d) = \sum _{d=1} ^n g(d) \sum _{i=1} ^{\frac n d} f(i) = \sum _{d=1} ^n g(d) S(\frac n d) d=1ng(d)dif(di)=d=1ng(d)i=1dnf(i)=d=1ng(d)S(dn)

g ( 1 ) S ( n ) = ∑ i = 1 n g ( i ) S ( n i ) − ∑ i = 2 n g ( i ) S ( n i ) = ∑ i = 1 n ( g ∗ f ) ( i ) − ∑ i = 2 n g ( i ) S ( n i ) g(1)S(n) = \sum _{i=1} ^n g(i)S(\frac n i) - \sum _{i=2} ^n g(i)S(\frac n i) = \sum _{i=1} ^n (g*f)(i) - \sum _{i=2} ^n g(i)S(\frac n i) g(1)S(n)=i=1ng(i)S(in)i=2ng(i)S(in)=i=1n(gf)(i)i=2ng(i)S(in)

前半部分是狄利克雷卷积的前缀和。

如果狄利克雷卷积的前缀和非常好算,那么可以对后半部分进行数论分块,递归计算(记忆化)。


栗子: ∑ i = 1 n μ ( i ) \sum _{i=1} ^n \mu (i) i=1nμ(i)

g ( 1 ) S ( n ) = ∑ i = 1 n ( g ∗ f ) ( i ) − ∑ i = 2 n g ( i ) S ( n i ) g(1)S(n) = \sum _{i=1} ^n (g*f)(i) - \sum _{i=2} ^n g(i)S(\frac n i) g(1)S(n)=i=1n(gf)(i)i=2ng(i)S(in)

看到 μ \mu μ想到 ( μ ∗ 1 ) = e (\mu * 1) = e (μ1)=e ∑ d ∣ n μ ( d ) = [ n = 1 ] \sum _{d \mid n} \mu (d) = [n = 1] dnμ(d)=[n=1]

e e e的前缀和就是1,十分好计算

因此取 g ( x ) = 1 g(x)=1 g(x)=1

S ( n ) = 1 − ∑ i = 2 n S ( n i ) S(n) = 1 - \sum _{i=2} ^n S(\frac n i) S(n)=1i=2nS(in)

先筛出一部分 μ \mu μ的前缀和,然后记忆化递归计算。


栗子2: ∑ i = 1 n φ ( i ) \sum _{i=1} ^n \varphi (i) i=1nφ(i)

看到 φ \varphi φ想到 ( φ ∗ 1 ) = i d (\varphi * 1) = id (φ1)=id ∑ d ∣ n φ ( d ) = n \sum _{d \mid n} \varphi (d) = n dnφ(d)=n

g ( x ) = 1 g(x) = 1 g(x)=1

S ( n ) = n ( n + 1 ) 2 − ∑ i = 2 n S ( n i ) S(n) = \frac {n(n+1)} {2} - \sum _{i=2} ^n S(\frac n i) S(n)=2n(n+1)i=2nS(in)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值