• 「从零开始的莫比乌斯反演」0. 序


    如题,这是一篇序。

    最近两天在学莫比乌斯反演,搜各种博客,搞得很头疼,感觉要学的东西非常多,而且乱。所以写一篇教程,顺便巩固一下知识。

    莫比乌斯反演是什么

    这个名字咋一看其实挺吓人的,毕竟突然就出现了“莫比乌斯”和“反演”这样两个没听说过而且很高大上的词。莫比乌斯反演是干什么的?举个例子:

    给定(n,m),求:

    [sumlimits_{i=1}^{n}sumlimits_{j=1}^{m} [operatorname{gcd}(i,j)=1] ]

    ([operatorname{gcd}(i,j) = 1])的意思是如果(i,j)满足(operatorname{gcd}(i,j) = 1),就为(1),否则为(0)

    对于全部测试点,(1 leq n, m leq 5 imes 10^4)


    这道题显然是不能暴力枚举的。反演可以把它的复杂度降到(O(n + Tsqrt{n})),其中(T)是询问的次数。

    莫比乌斯反演能用来解决一些这种数论函数求和的问题。

    现在,莫比乌斯反演是不是不那么神秘了?

    学习路线

    学莫比乌斯反演之前是有一系列的知识要学的。我个人建议是这样的:

    线性筛(或其他筛法,至少会一种。建议复杂度不要高于(O(n)))&数论分块 -> 莫比乌斯函数 -> 狄利克雷卷积 -> 莫比乌斯反演

    因为学习狄利克雷卷积的时候,了解一些莫比乌斯函数的相关性质会方便很多,所以就把莫比乌斯函数放到前面了。

    这些奇怪的名词,看起来很高大上,不过一步一步扎实地学习,你会发现它们并没有那么难。比如狄利克雷卷积。

    PS

    虽然打算写一系列从零开始的教程,不过我不打算具体讲线性筛。但是线性筛的模版还是会给出的。

    虽然说,本系列是想写面向Beginner的教程,但是莫比乌斯反演在数论中并不是很基础的内容,你仍然需要有一些数论的基础知识。

  • 相关阅读:
    Java Web学习笔记之---EL和JSTL
    Java Web学习笔记之---Servlet
    Java Web项目案例之---登录注册和增删改查(jsp+servlet)
    Java项目案例之---加法计算器(转发和重定向)
    Java Web项目案例之---登录和修改(JSP)
    Java Web学习笔记之---JSP
    Java项目案例之---定时器的使用
    Java项目案例之---常用工具类练习
    Java学习笔记之---API的应用
    这些年我对安全成熟度模型的一点点思考
  • 原文地址:https://www.cnblogs.com/icysky/p/13726897.html
Copyright © 2020-2023  润新知