zoukankan      html  css  js  c++  java
  • 莫比乌斯反演

    先写点东西吧

    比如说(mu)函数的性质

    首先(mu(1)=1)

    之后对于一个数(n),将(n)质因数分解,如果有任何一个质数的的指数超过(1),那么(mu(n)=0)

    否则记(n=prod_{i=1}^kp_i),则(mu(n)=(-1)^k)

    于是就有了一条非常重要的性质

    [sum_{d|n}mu(d)=[n=1] ]

    显然当(n=1)的时候满足(mu(1)=1)

    (n>1)的时候,我们可以尝试用二项式定理证明一下

    (n)分解质因数,我们由于一个质数选择的次数超过(1),那么对这个(sum)的贡献为(0),所以我们只需要考虑每一个质数被至多选择(1)次的情况

    (n=prod_{i=1}^kp_i^{a_i}),选择了(i)的质数的情况就是(inom{k}{i})

    所以

    [sum_{d|n}mu(d)=sum_{i=0}^kinom{k}{i}(-1)^i=sum_{i=0}^kinom{k}{i}(-1)^i*1^{k-i}=(-1+1)^k=0 ]

    之后就是大名鼎鼎的莫比乌斯反演定理

    (F(n),f(n))为两个定义在非负整数集合上的函数

    如果存在

    [F(n)=sum_{d|n}f(d) ]

    那么就存在

    [f(n)=sum_{d|n}mu(d)F(frac{n}{d}) ]

    也可以写成

    [f(n)=sum_{d|n}mu(frac{n}{d})F(d) ]

    好像看起来就非常神奇的样子,尝试证明一下

    [sum_{d|n}mu(d)F(frac{n}{d})=sum_{d|n}mu(d)sum_{i|frac{n}{d}}f(i)=sum_{d|n}sum_{i|frac{n}{d}}mu(d)f(i) ]

    显然如果(i)(frac{n}{d})的约数的话,肯定也是(n)的约数

    我们考虑一下哪一些(d)能枚举到(i)

    因为(i| frac{n}{d}),那么就有

    [k imes i=frac{n}{d} ]

    [k imes i imes d=n ]

    [k imes d=frac{n}{i} ]

    所以能枚举到(i)(d)必须满足(d|frac{n}{i})

    于是可以交换一下(sum)

    [sum_{d|n}sum_{i|frac{n}{d}}mu(d)f(i)=sum_{i|n}f(i)sum_{d|frac{n}{i}}mu(d) ]

    又因为(sum_{d|n}mu(d)=[n=1]),所以只有在(i=n)的时候后面的(sum_{d|frac{n}{i}}mu(d)=1),所以这个柿子的值就是(1 imes f(n)=f(n))

    所以就证明了(f(n)=sum_{d|n}mu(d)F(frac{n}{d}))

    其实还有一种方式的反演,是枚举倍数的反演

    [F(n)=sum_{n|d}f(d) ]

    [f(n)=sum_{n|d}mu(frac{d}{n})F(d) ]

    主要适用于跟(gcd)相关的反演中,证明在下面的第一个题目里

    好像之后这些还不太够,还有一个非常重要的东西——狄利克雷卷积

    其实就是有两个数论函数(f,g)我们可以定义

    [h(n)=sum_{d|n}f(d)g(frac{n}{d}) ]

    那么就记(f imes g=h),也就是说(f)(g)的卷积为(h)

    狄利克雷卷积有几条非常有用的性质

    1. 交换律:(f imes g=g imes f)

    2. 结合律:(f imes g imes h=f imes (g imes h))

    3. 分配律:定义两个函数的加法为逐项相加,那么就有(f imes(g+h)=f imes g+f imes h)

    之后还有三个看上去非常鸡肋,但是实际上非常有用的函数

    1. (ϵ)单位元函数,(ϵ(n)=[n=1]),在狄利克雷卷积里充当单位元的功能,显然对于任意的(f)都存在(f imes ϵ=f)

    2. (I)恒等函数,(I(n)=1)

    3. (id)单位函数,(id(n)=n)

    我们可以从狄利克雷卷积的方法证明莫比乌斯反演

    [F(n)=sum_{d|n}f(d) ]

    写成卷积的形式,也就是(F(n)=sum_{d|n}f(d)*I(frac{n}{d})),也就是(F=f imes I)

    我们在两边乘上(mu)

    [F imes mu=f imes I imes mu ]

    显然(I imes mu=sum_{d|n}mu(d)=ϵ)

    也就是说(f imes ϵ=F imes mu)

    再写回来

    [f(n)=sum_{d|n}mu(d)F(frac{n}{d}) ]

    于是我们又证明了莫比乌斯反演

    所以其实莫比乌斯反演本质上就是两个柿子

    [F=f imes I ]

    [f=mu imes F ]

    通过卷积我们还可以把另一个重要的函数(varphi)(mu)建立联系

    众所周知学反演之前的我就不知道有这样一个奇妙的性质

    [sum_{d|n}varphi(d)=n ]

    其实就是(varphi imes I=id)

    但是这个性质是怎么来的呢

    证明一下吧

    [varphi(n)=sum_{i=1}^n[(i,n)=1]=sum_{i=1}^nsum_{d|(i,n)}mu(d) ]

    这就是(mu)的神奇性质,看到诸如([n=1])就可以用(sum_{d|n}mu(d))来代替

    显然我们发现(d)((i,n))的约数就一定是(n)的约数,考虑将(sum)交换,继续化柿子

    [varphi(n)=sum_{i=1}^nsum_{d|(i,n)}mu(d)=sum_{d|n}mu(d)sum_{d|i}1=sum_{d|n}mu(d)frac{n}{d} ]

    发现(frac{n}{d})其实就是(id)啊,于是就得到了(varphi =mu imes id)

    根据反演定理,自然有(varphi imes I=id)

    之后还有一个并不是非常难证的柿子

    [sum_{d|n}frac{mu(d)}{d}=frac{varphi(n)}{n} ]

    upd

    发现我并不是会那个柿子,于是补一下

    把左边那个(n)乘过来

    [sum_{d|n}frac{n}{d}mu(d)=varphi(n) ]

    发现这个柿子反映的就是(id imes mu=varphi)

    这显然是对的,因为(varphi imes I=id),根据反演就有上面那个柿子了

    以上是莫比乌斯反演和狄利克雷卷积的理论部分,好像实际做题跟理论也没什么关系

    于是做完一道题就来总结一下吧

    YY的GCD

    Crash的数字表格

    [POI2007]ZAP-Queries

    [NOI2010]能量采集

    [SDOI2014]数表(树状数组维护反演)

    于神之怒加强版

    [SDOI2015]约数个数和

    以及没有什么东西的杜教筛

  • 相关阅读:
    大型高并发高负载网站的系统架构(转)
    亿级数据的高并发通用搜索引擎架构设计(转-张宴)
    VMware12版虚拟机怎么安装win7系统(详细教程
    Linux-CentOS7 安装VMware Workstation 12
    IntelliJ IDEA 12创建Maven管理的Java Web项目(图解)
    idea 创建maven工程(入门)
    SQL中inner join、outer join和cross join的区别
    OLTP和OLAP有何区别?
    HAWQ 官方文档创建filespace,tablespace,database,table
    DQL、DML、DDL、DCL的概念与区别
  • 原文地址:https://www.cnblogs.com/asuldb/p/10205579.html
Copyright © 2011-2022 走看看