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

    真tmd是个大坑呢……( 数论真好玩毒瘤
    首先莫比乌斯反演是一个可以帮助我们加快计算或使计算变得简便的一种方法。至于如何简便,将在以后的题目中体现(完了又挖了个坑


    莫比乌斯反演公式(f(x))是数论函数,(F(x))是其因子和函数,即(forall n in mathbb{N^*})满足(F(n)=sumlimits_{d|n} f(d))。则有$$f(n)=sum_{d|n}mu(d)F(frac{n}{d})$$其中(mu(x))为莫比乌斯函数,其定义为

    [mu(n)=egin{cases} 1 & mbox{if }n=1 \ (-1)^r & ext{if }n=prod_{i=1}^r p_i \ 0 & ext{otherwise} end{cases} ]

    至于为何这么定义,如果熟悉反演的话稍微举几个例子就明白了,这里略去。

    在证明这个公式之前,先介绍几个有用的前置知识与引理。


    前置知识:积性函数、狄利克雷卷积(这个单拎出来在另一篇文章里总结了)。

    引理1. (mu(n))为积性函数。
    证明:等价于证明对于(forall gcd(m,n)=1),都有(mu(mn)=mu(m)mu(n))
    考虑(m=1)(n=1)的情景,显然成立;考虑(m,n)至少一个含有平方素因子的情况,亦显然成立。再考虑其他情况,则必有(m,n)的唯一素幂因子分解(m=prod_{i=1}^s p_i)(n=prod_{i=1}^t p_i),此时有(mu(mn)=(-1)^{s+t}=(-1)^s(-1)^t=mu(m)mu(n))。QED。

    引理2. 莫比乌斯函数的因子和函数(F(n))为单位函数。
    较简单,证略。
    注意到此引理有个常用推论:(sumlimits_{d|gcd(i,j)}mu(d)=[gcd(i,j)=1])

    引理3. 积性函数的因子和函数仍为积性函数。
    证明:等价于证明(forall gcd(m,n)=1)(F(n)=sumlimits_{d|n}f(d)),都有(F(mn)=F(m)F(n))成立。
    首先根据定义,有(F(mn)=sumlimits_{d|mn}f(d))。又(gcd(m,n)=1),则(mn)的每个因子必可唯一表示为(m)的因子(d_1)(n)的因子(d_2)的乘积。于是有

    [F(mn)=sum_{d|mn}f(d)=sum_{d_1|m \ d_2|n}f(d_1d_2)=sum_{d_1|m}f(d_1)sum_{d_2|n}f(d_2)=F(m)F(n) ]

    QED。


    现在给出证明莫比乌斯反演公式的两种方法。

    证明:(法一):根据上文的引理推导,有

    [sum_{d|n}mu(d)F(frac{n}{d})=sum_{d|n} {mu(d)} sum_{eleft| {frac{n}{d}} ight.} {F(e)} = sum_{dleft| {frac{n}{e}} ight.} {mu (d)} sum_{e|n} {F(e)} = f(n) ]

    QED。

    (法二):根据卷积,等价于证若(F=f*1),证明(f=F*mu)
    因为(1*mu=epsilon),所以(F*mu=f*1*mu=f)。QED。

  • 相关阅读:
    linux 系统tar文件压缩打包命令
    linux如何查看所有的用户和组信息?
    go语言之行--golang操作redis、mysql大全
    Redis集群的5种使用方式,各自优缺点分析
    docker-compose搭建redis哨兵集群
    windows版 navicat_15.0.18 安装
    redis aof数据持久化
    redis rdb数据持久化
    03.redis 事务
    02 redis 三种特殊的数据类型
  • 原文地址:https://www.cnblogs.com/wzzyr24/p/11746976.html
Copyright © 2011-2022 走看看