• 数论函数、狄利克雷卷积、莫比乌斯反演和杜教筛


    数论函数

    常见的数论函数:

    欧拉函数

    $$varphi(n)=sum_{i=1}^{n}[(n, i)=1]$$

    元函数

    $$ epsilon(n)=[n=1]$$

    恒等函数

    $$1(n)=1$$

    标号函数

    $$Id(n)=n$$

    除数函数

    $$sigma(k, x)=sum_{d mid x} d^{k}$$

    $k$省略时默认$k=1$

    莫比乌斯函数

    设$x$的唯一分解式为$x=p_{1}^{c_{1}} p_{2}^{c 2} ldots p_{k}^{c k}$,则

    $$mu(x)=left{egin{array}{ll}
    1 & x=1 \
    (-1)^{m} & forall i in[1, k], c_{i}=1 \
    0 & ext { otherwise }
    end{array} ight.$$

    狄利克雷卷积

    定义

    对于两个数论函数$f$和$g$,其狄利克雷卷积定义为

    $$(f * g)(n)=sum_{d mid n} f(d) cdot gleft(frac{n}{d} ight)$$

    函数积性

    如果$f$和$g$都是积性函数,则$(f*g)$也是积性函数

    常见数论函数的狄利克雷卷积

    莫比乌斯函数

    $$mu * 1=epsilon$$

    欧拉函数

    $$varphi * 1=i d$$

    莫比乌斯反演

    定义$F(n)$和$f(n)$是定义在非负整数几何上的两个函数

    形式一

    $$F(n)=sum_{n|d}f(d)$$

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

    形式二

    $$F(n)=sum_{d|n}f(d)$$

    $$f(n)=sum_{d|n}mu(d)F(lfloorfrac{n}{d} floor)$$

    杜教筛

    证明

    已知数论函数$f(x)$,要求$sum_{i=1}^n f(i)$

    构造两个积性函数$h$和$g$,使$f*g=h$

    记$S(n)=sum_{i=1}^n f(i)$

    egin{array}{c}
    sum_{i=1}^{n} h(i)&=&sum_{i=1}^{n} sum_{d mid i} g(d) cdot fleft(frac{i}{d} ight)\
    sum_{i=1}^{n} h(i)&=&sum_{d=1}^{n} g(d) cdot sum_{i=1}^{leftlfloorfrac{n}{d} ight floor} f(i) \
    sum_{i=1}^{n} h(i)&=&sum_{d=1}^{n} g(d) cdot Sleft(leftlfloorfrac{n}{d} ight floor ight)
    end{array}

    egin{array}{l}
    sum_{i=1}^{n} h(i)&=g(1) cdot S(n)+sum_{d=2}^{n} g(d) cdot Sleft(leftlfloorfrac{n}{d} ight floor ight) \
    g(1) S(n)&=sum_{i=1}^{n} h(i)-sum_{d=2}^{n} g(d) cdot Sleft(leftlfloorfrac{n}{d} ight floor ight)
    end{array}

    代码

    int djs2(int x)
    {
        if(x<=9000000)//线性筛预处理 
            return mu[x];
        if(w2[x])//map记忆化搜索 
            return w2[x];
        int ret=1;
        for(int i=2;i<=x;)//整除分块 
        {
            int j=x/(x/i);
            ret-=(j-i+1)*djs2(x/i);
            i=j+1;
        }
        return w2[x]=ret;
    }
    杜教筛
  • 相关阅读:
    js 将内容复制到剪切板上
    javascript刷新父页面的各种方法汇总
    jQuery 使得文本框获得焦点
    layui switch 开关监听 弹出确定状态转换
    layui 图片上传+表单提交+ Spring MVC
    python爬虫实例--网易云音乐排行榜爬虫
    Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
    python爬虫实例--博客园首页Java目录博文爬虫
    让js中的函数只有一次有效调用的三种常用方法
    spring项目获取ServletContext
  • 原文地址:https://www.cnblogs.com/JDFZ-ZZ/p/13577596.html
Copyright © 2020-2023  润新知