Mobius反演学习
这篇文章参考了许多资料和自己的理解。
先放理论基础。
最大公约数:小学学过,这里只提一些重要的公式:
$·$若$a=b$,则$\gcd(a,b)=a=b$;
$·$若$\gcd(a,b)=d$,则$\gcd(b,a-b)=d$,所以就有了欧几里得辗转相除法;
$·$如果$a$为偶数,$b$为奇数,则$\gcd(a,b)=\gcd\left(\dfrac a2,b\right)$;
$·$如果$a$、$b$均为偶数,则$\gcd(a,b)=2\times \gcd\left(\dfrac a2,\dfrac b2\right)$。
$·$若$\gcd(a,b)=d$,则$\gcd\left(\dfrac ad,\dfrac bd\right)=1$;
数论函数:定义域为正整数、值域是复数的子集的函数称为数论函数。$\text{OI}$中一般都是整数。
积性函数:设$f$为数论函数,对于任意互质的两个正整数$a$、$b$,且$f(a)f(b)=f(ab)$,则$f$是积性函数。如果对于任意两个正整数$a$、$b$满足$f(a)f(b)=f(ab)$,则称之为完全积性函数。区别两者。
因式分解:这个小学就学过了。用现在的知识说,$n=p_1^{\alpha_1}p_2^{\alpha_2}···p_s^{\alpha_s}$是$n$的标准分解,$p_1,p_2,···,p_s$均为质数。
根据以上三条,可以得到:对于积性函数$f$,有$f(n)=f(p_1^{\alpha_1})f(p_2^{\alpha_2})···f(p_s^{\alpha_s})$,所以研究积性函数可以研究其在素数的幂上的取值。
所以我们可以用$\text{Euler}$筛法线性时间内求解出所需的$f$的值。
单位函数:$\epsilon(n)=[n=1]=\left\{\begin{aligned}1,n=1\\0,n\ne1\end{aligned}\right.$。其中$[\text{state}]$表示当$\text{state}$为真时值为$1$,否则为$0$。单位函数是完全积性函数。
除数函数:$\sigma_k(n)$表示$n$的因子的$k$次方之和:$\sigma_k(n)=\sum\limits_{d|n}d^k$。当$k=0$时变成求其约数个数,此时写作$d(n)$;当$k=1$时变成求约数和,此时写作$\sigma(n)$。除数函数是积性函数。
$\text{Euler}$函数:表示不超过$n$且与$n$互质的正整数的个数,根据容斥原理可得:$\varphi(n)=n·\prod\limits_{i=1}^s\left(1-\dfrac{1}{p_i}\right)$。其中$n=p_1^{\alpha_1}p_2^{\alpha_2}···p_s^{\alpha_s}$是$n$的标准分解。
然后对于$\text{Euler}$函数,有一个性质:$n=\sum\limits_{d|n}\varphi(d)$。
证明:考虑根据与$n$的最大公约数分组,设$\gcd(n,i)=d$,则根据前面所讲的性质得到$\gcd\left(\dfrac nd,\dfrac id\right)=1$,所以与$n$的最大公约数为$d$的数有$\varphi\left(\dfrac nd\right)$,又因为所有$\leq n$的数与$n$的最大公约数$d$一定整除$n$,所以可得:$n=\sum\limits_{d|n}\varphi\left(\dfrac nd\right)=\sum\limits_{d|n}\varphi(d)$。(因为$d$和$\dfrac nd$成对出现,所以可以替换)
要到重点啦~
$\text{Dirichlet}$卷积:设$f$、$g$是数论函数,对于数论函数$h$如果满足$h(n)=\sum\limits_{d|n}f(d)g\left(\dfrac nd\right)$,则称$h$为$f$和$g$的$\text{Dirichlet}$卷积,简写成$h=f*g$。对于任意的数论函数$f$,有$f*\epsilon=f$。$\text{Dirichlet}$卷积满足交换律和结合律。$h=f*g$为积性函数当且仅当$f,g$为积性函数。
幂函数:表示$n^k$,写作$\text{Id}_k(n)$,当$k=1$时$k$可不写。一般当作记号。
根据这些我们可以将上面的式子改成$\text{Dirichlet}$卷积的形式,例如除数函数的性质可写成$\sigma_k(n)=\text{Id}_k*1$,$\text{Euler}$函数的性质可写成$\text{Id}=\varphi*1$。
到啦~
$\text{Mobius}$函数:定义$\mu(n)=\left\{\begin{array}{ll}1 & n=1\\(-1)^s & n=p_1p_2···p_s\text{且}p_1,p_2,···,p_s\text{互不相等}\ &\\0 & \text{其他(也就是含有因数为质数的平方)}\end{array}\right.$。$\mu$是积性函数。
$\text{Mobius}$函数重要的性质:$\sum\limits_{d|n}\mu(d)=\epsilon(n)$。用$\text{Dirichlet}$卷积表示就是$\mu*1=\epsilon$。
证明:$n=1$时成立是显然的。若$n>1$,设素因子有$s$个,如果$d$出现了$2$次相同的素因子,根据定义$\mu(d)=0$,所以只考虑$d$中素因子的指数为$0$或$1$时。即$d$为$s$个素因子中任意选取$0\text{~}s$个素因子的乘积,所以得:$\sum\limits_{d|n}\mu(d)=\sum\limits_{i=0}^s(-1)^i\left(\begin{matrix}s\\i\end{matrix}\right)=(1-1)^s=0$。结果和$\epsilon$定义一样,即证。
$\text{Mobius}$变换:设$f$为数论函数,若函数$g$满足$g(n)=\sum\limits_{d|n}f(d)$,则称$g$为$f$的$\text{Mobius}$变换,$f$为$g$的$\text{Mobius}$逆变换。也可以写作$g=f*1$。
$\text{Mobius}$反演定理:上面的$\text{Mobius}$变换的充要条件为$f(n)=\sum\limits_{d|n}g(d)\mu\left(\dfrac nd\right)$。可以写作$f=g*\mu$。对此的推导很简单,由$f=g*\mu$得$f*1=g*\mu*1$,根据$\mu*1=\epsilon$得$f*1=g*(\mu*1)=g*\epsilon$,又因为$f*\epsilon=f$,所以$g*\epsilon=g=f*1$,就得到了上面的$\text{Mobius}$变换。
到这,该有的定义还有就说完了。
一般的求解就是利用卷积转化原式,再通过调换求和顺序或者通过整除分块的科技降低复杂度。常用的卷积就是上面所述(还算比较套路的8虽然我还是很弱)。
这里放几个经典的例子(正在施工,待更)
[SDOI2012]Longge的问题:跟Mobius反演没有直接关系,但值得一看。
[HAOI2011]Problem b:跟Mobius有关系啦!之中有整除分块的相关内容,很重要。
Mobius反演学习的更多相关文章
- Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和
下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ...
- SPOJ PGCD (mobius反演 + 分块)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题意 :求满足gcd(i , j)是素数(1 &l ...
- 关于Mobius反演
欧拉函数 \(\varphi\) \(\varphi(n)=\)表示不超过 \(n\) 且与 \(n\) 互质的正整数的个数 \[\varphi(n)=n\cdot \prod_{i=1}^{s}(1 ...
- mobius反演讲解
mobius反演的基本形式为,假设知道函数F(x)=Σf(d) d|x,那么我们可以推出f(x)=Σmiu(d)*F(x/d) d|x,另一基本形式为假设知道函数F(x)=Σf(d) x|d,那么我们 ...
- [基本操作] Mobius 反演, Dirichlet 卷积和杜教筛
Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $ ...
- Mobius 反演与杜教筛
积性函数 积性函数 指对于所有互质的整数 aaa 和 bbb 有性质 f(ab)=f(a)f(b)f(ab)=f(a)f(b)f(ab)=f(a)f(b) 的数论函数. 特别地,若所有的整数 aaa ...
- Note -「Mobius 反演」光速入门
目录 Preface 数论函数 积性函数 Dirichlet 卷积 Dirichlet 卷积中的特殊函数 Mobius 函数 & Mobius 反演 Mobius 函数 Mobius 反演 基 ...
- 【莫比乌斯反演】关于Mobius反演与gcd的一些关系与问题简化(bzoj 2301 Problem b&&bzoj 2820 YY的GCD&&BZOJ 3529 数表)
首先我们来看一道题 BZOJ 2301 Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd( ...
- (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)
莫比乌斯反演也是反演定理的一种 既然我们已经学了二项式反演定理 那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用 莫比乌斯反演长下面这个样子(=・ω・=) d|n,表示n能够整除d,也就是d ...
随机推荐
- Hadoop 之 深入探索MapReduce
1.MapReduce基础概念 答:MapReduce作业时一种大规模数据的并行计算的便程模型.我们可以将HDFS中存储的海量数据,通过MapReduce作业进行计算,得到目标数据. 2.MapRed ...
- tomcat启动出现乱码
打开tomcat目录下apache-tomcat-9.0.26\conf\logging.properties 替换全文 encoding = UTF-8 为 encoding = GBK: rest ...
- 修改tomcat 使用的JVM的内存
一,前言 在文章让tomcat使用指定JDK中,我让tomcat成功使用了我指定的JDK1.8,而不是环境变量中配置的JDK10.本篇文章我们就来探讨一下怎么设置tomcat使用的JVM的内存. 为什 ...
- Tomcat 报错 The APR based Apache Tomcat Native library which allows optimal performance in production environmen
这个问题在我一次重新装了tomcat和myeclipse时出现 说实话 出现这个问题头大 但是好在解决了 美滋滋 最开始到处寻找各种解决方案 最后直接注释了server.xml中的一行 直接解决这个报 ...
- 品Spring:负责bean定义注册的两个“排头兵”
别看Spring现在玩的这么花,其实它的“筹码”就两个,“容器”和“bean定义”. 只有先把bean定义注册到容器里,后续的一切可能才有可能成为可能. 所以在进阶的路上如果要想走的顺畅些,彻底搞清楚 ...
- C#连接Mongo报Unable to authenticate using sasl protocol mechanism SCRAM-SHA-1错的解决方案
---恢复内容开始--- 最近做一个基于ABP的.net Core的项目,数据库选了MongoDB,但是返现无法给数据库设置认证,只要设置了账号密码连接就报错 连接串如下: mongodb://roo ...
- Redis数据库之KEY的操作与事务管理
目的 了解并掌握各种数据类型的命令操作方式,以及各种数据类型值的操作方式.同时,主要培养对KEY的操作命令运用的能力.重点掌握对KEY信息的管理.事务常规管理和事务回滚操作. KEYS命令的练习,对K ...
- 前端获取后台传输过来是数据 {张三:12} 解析为[object object],获取其中内容
昨天遇到前端传输过来的数据为[{张三:12},{李四:23}],后台用的是map格式,我在前端js中暂未找到直接调用对象内容的方法,故利用以下方法来获取: $.each(data.data,funct ...
- 国庆佳节第四天,谈谈我月收入增加 4K 的故事
01.起承 在我下定决心改变的这将近 1 年的时间里,遇到了很多很多有故事的人,以及有趣的事.自我的认知改变特别大!尤其是收入,比去年同时期增加了 4K. 4K,可能也就买 100 斤猪肉.但是对于身 ...
- mybatis执行过程及经典面试题
Mybatis执行流程 mybatis中xml解析是通过SqlSessionFactoryBuilder.build()方法. 初始化mybatis(解析xml文件构建成Configuration对象 ...