• 浅谈莫比乌斯反演/杜教筛/狄利克雷卷积


    定义:

    对于两个数论函数(f)(g),定义((f*g)(n)=sum_{d|n}f(d)cdot g(frac{n}{d}))

    并且我们可以发现,狄利克雷卷积是满足交换律,结合律以及分配律的。

    你或许还需要知道一些完全积性函数:

    1、(I(n))不变的函数,定义为(I(n)=1)

    2、(id(n))单位函数,定义为(id(n)=n)

    3、(ε(n))定义为:(ε(n)=[n==1])。为狄利克雷卷积的乘法单位。

    这些函数在接下来将很有用

    很显然,是不是有(mu*I=ε)

    证明莫比乌斯反演

    那么接下来我们来证明莫比乌斯反演吧:

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

    那么有

    [F=f*I ]

    想到(mu*I=ε),考虑在等式两边卷上一个$mu $

    [F*mu=f*I*mu\ F*mu=f*ε ]

    然而(f*ε=f)(可以自己想想)

    然后就得出了

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

    如果定义

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

    就可以得出莫比乌斯反演的另一种形式

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

    杜教筛

    杜教筛是一种可以快速求出积性函数前缀和的算法

    假设我们现在需要求(sum_{i=1}^{n}h[i])

    (n)高达(10^9),线性筛就做不了了

    我们设(f,g),并且(f*h=g)

    那么我们设(S[n]=sum_{i=1}^{n}h[i])

    [sum_{i=1}^{n}g(i)=sum_{i=1}^{n}sum_{d|i}f(d)h(frac{i}{d})\ sum_{i=1}^{n}g(i)=sum_{d=1}^{n}f(d)sum_{i=1}^{lfloorfrac{n}{d} floor}h(i)\ sum_{i=1}^{n}g(i)=sum_{d=1}^{n}f(d)h(lfloorfrac{n}{d} floor)\ S(n)f(1)=sum_{i=1}^{n}g(i)-sum_{d=2}^{n}f(d)S(lfloorfrac{n}{d} floor)\ S(n)=frac{sum_{i=1}^{n}g(i)-sum_{d=2}^{n}f(d)S(lfloorfrac{n}{d} floor)}{f(1)}\ ]

    (f(1))很容易知道,对于右边里的(S(lfloor frac{n}{d} floor))递归求解就好了

    但是(g,f)的选择不是固定的,需要凭经验选取

    狄利克雷卷积应用

    1、可以用来判断积性函数,积性函数和积性函数的狄利克雷卷积也是积性函数

    由于博主才疏学浅,可能讲的有些不清楚,会后续更改补充

  • 相关阅读:
    centos 6.4 FTP安装和配置
    常用正则表达式集锦
    同一服务器部署多个tomcat时的端口号修改详情
    介绍linux下vi命令的使用
    CentOS下安装两个或多个Tomcat7
    tomcat解析之简单web服务器(图)
    吻你
    用C++语言开发Android程序 配置开发环境
    内地开源镜像网站
    Android SDK Android NDK Android Studio 官方下载地址
  • 原文地址:https://www.cnblogs.com/lcxer/p/10551641.html
Copyright © 2020-2023  润新知