• 数论学习笔记


    Warning:请不要使用此博客作为学习用途,这个博客是写出来我自己看的,所以很有可能前言不搭后语或者出言不逊。

    # 备忘录

    ## 一些记号

    $ ext{I}(x)=1$

    $ ext{id}(x)=x$

    $ ext{e}(x)=[x=1]$

    $ ext{d}(x)=sumlimits_{d|x}1$

    $sigma(x)=sumlimits_{d|x}d$

    $varphi(x)$ 欧拉函数

    $mu(x)$ 莫比乌斯函数

    ## 一些数论定理

    $e*F=F$,$F$ 为任何数论函数。

    $e=mu * 1$,$[n=1]=sumlimits_{d|n}mu(d)$

    $id=varphi*1$,$n=sumlimits_{d|n}phi(d)$

    $mu*id=varphi$

    $mu*d=1$

    $id=varphi *1$

    ## 莫比乌斯反演

    $ ext{g}(n)=sumlimits_{d|n}{ ext{f}(n)}$,则 $ ext{f}(n)=sumlimits_{d|n}mu({frac{n}{d}}) ext{g}(d)$

    ## 狄利克雷卷积

    $ ext{f}(n)* ext{g}(n)=sumlimits_{d|n}f(d)g(frac{n}{d})$


    # Euler 函数的前缀和

    令 $phi(n)=sumlimits_{i=1}^nvarphi(i)$,求 $phi(n)$。

    $$
    egin{aligned}{}

    &quad frac{1}{2}n(n+1)\

    &=sumlimits_{i=1}^{n}i=sumlimits_{i=1}^nsumlimits_{d|i}varphi(frac{i}{d})\

    &=sumlimits_{d=1}^nsumlimits_{1leq i leq n, d|k}varphi(frac{i}{d})\

    &=sumlimits_{d=1}^{n}sumlimits_{i=1}^{lfloorfrac{n}{d} floor}varphi(i)\

    &=sumlimits_{d=1}^nphi(lfloor frac{n}{d} floor)\
    end{aligned}\

    herefore phi(n)=frac{1}{2}n(n+1)-sumlimits_{d=2}^{n}phi(lfloorfrac{n}{d} floor)\
    $$

    当知道了 $phi(lfloorfrac{n}{d} floor)$ 运用整除分块即可在 $mathcal O(sqrt n)$ 内算出 $phi(n)$。

    利用记忆化搜索,可以防止一个值被计算多次。

    总时间复杂度 $mathcal O(n^frac{3}{4})$。

    因此可以使用欧拉筛筛出前 $n^frac{2}{3}$ 的值,然后运用杜教筛,那么总时间复杂度为 $mathcal O(n^frac{2}{3})$。显然非常玄学,我也不知道怎么计算出来的qwq

    # Möbius 函数的前缀和

    令 $ ext{M}(n)=sumlimits_{i=1}^nmu(i)$。计算 $ ext{M}(n)$。

    $$
    egin{aligned}
    1
    &=sumlimits_{i=1}^n ext{e}(i)=sumlimits_{i=1}^nsumlimits_{d|i}mu(d)\
    &=sumlimits_{d=1}^nsumlimits_{1leq ileq n,d|i}mu(frac{i}{d})\
    &=sumlimits_{d=1}^nsumlimits_{i=1}^{lfloorfrac{n}{d} floor}mu(i)\
    &=sumlimits_{d=1}^n ext{M}(lfloorfrac{n}{d} floor)
    end{aligned}\
    herefore ext{M}(n)=1-sumlimits_{d=2}^n ext{M}(lfloorfrac{n}{d} floor)
    $$

    同理可以运用线性筛计算。

  • 相关阅读:
    为什么C++(感谢waterwalk翻译)
    容器操作笔记
    如此理解面向对象编程
    C++初学者小细节(不定时更新)
    Sales_item 专题
    10步让你成为更优秀的程序员
    C++ PRIMER 笔记
    C++ 异常处理
    透明度 rgba 和 opacity 的区别
    盒模型
  • 原文地址:https://www.cnblogs.com/SmallPillow/p/12814982.html
Copyright © 2020-2023  润新知