[Möbius]个人对Möbius反演的理解
2016-02-03 22:59
232 查看
Möbius反演的引入
设f(n)和g(n)是定义再正整数集合上的两个函数,并满足f(n)和g(n)是定义再正整数集合上的两个函数,并满足f(n)=∑d|ng(d)f(n)=\sum_{d|n}g(d)我们发现
f(1)=g(1)f(1)=g(1)
f(2)=g(1)+g(2)f(2)=g(1)+g(2)
f(3)=g(1)+g(3)f(3)=g(1)+g(3)
f(4)=g(1)+g(2)+g(4)f(4)=g(1)+g(2)+g(4)
f(5)=g(1)+g(5)f(5)=g(1)+g(5)
f(6)=g(1)+g(2)+g(3)+g(6)f(6)=g(1)+g(2)+g(3)+g(6)
….
那么我们就有
g(1)=f(1)g(1)=f(1)
g(2)=f(2)−f(1)g(2)=f(2)-f(1)
g(3)=f(3)−f(1)g(3)=f(3)-f(1)
g(4)=f(4)−f(2)g(4)=f(4)-f(2)
g(5)=f(5)−f(1)g(5)=f(5)-f(1)
g(6)=f(6)−f(3)−f(2)+f(1)g(6)=f(6)-f(3)-f(2)+f(1)
观察这些等式,发现这样一个规律:g(n)=∑d|nf(d)∗?g(n)=\sum_{d|n}f(d) * ?
进一步地我们发现上面的??与d无直接关系,而是与nd\Large \frac{n}{d}有关,我们将这个记为μ(nd)\mu(\Large \frac{n}{d})
则g(n)=∑d|nf(d)∗μ(nd)g(n)=\sum_{d|n} f(d) * \mu(\frac{n}{d})
这就是MöbiusMöbius反演,实际上是容斥原理在定义在整数集上的一个偏序关系的拓展。
Möbius反演的定义
f(n)=∑d|ng(d)<=>g(n)=∑d|nf(d)∗μ(nd)\Large f(n) = \sum_{d|n}g(d) <=> g(n)=\sum_{d|n} f(d) * \mu(\frac{n}{d})μ(d)为Möbius函数,定义如下\mu(d)为Möbius函数,定义如下
(1)若d=1,则μ(d)=1(1)若d=1,则\mu(d)=1
(2)若d=p1∗p2∗...∗pk,则μ(d)=(−1)k(2)若d=p_{1}*p{2}*...*p_{k},则\mu(d) = (-1)^k
(3)其余情况μ(d)=0(3)其余情况\mu(d)=0
Möbius反演的性质
性质一对于任意正整数n,有∑d|n=[n==1]n,有\sum_{d|n} = [n == 1]
证明:利用二项式定理即可
性质二
μ(n)是积性函数\mu(n)是积性函数
证明:利用定义即可
性质三
f(n)是积性函数与g(n)是积性函数等价f(n)是积性函数与g(n)是积性函数等价
证明:略
Möbius反演的证明
证明:g(n)g(n)
=∑d|nf(nd)∗μ(d)=\sum_{d|n}f(\frac{n}{d})*\mu(d)
=∑d|nμ(d)∑i|ndg(i)=\sum_{d|n}\mu(d)\sum_{i|\frac{n}{d}}g(i) 这时我们交换求和顺序
=∑i|ng(i)∑d|niμ(d)=\sum_{i|n}g(i)\sum_{d|\frac{n}{i}}\mu(d)
根据性质一,
i=n时∑d|niμ(d)=1i=n时\sum_{d|\frac{n}{i}}\mu(d)=1
其他情况时∑d|niμ(d)=0\sum_{d|\frac{n}{i}}\mu(d)=0
综上,得证
Möbius反演的变形
形式一:f(n)=∑d|ng(d)<=>g(n)=∑d|nf(d)∗μ(nd)f(n) = \sum_{d|n}g(d) <=> g(n)=\sum_{d|n} f(d) * \mu(\frac{n}{d})形式二:f(i)=∑⌊ni⌋d=1g(d∗i)<=>g(i)=∑⌊ni⌋d=1f(d∗i)μ(d)f(i)=\sum_{d=1}^{\lfloor \frac{n}{i} \rfloor} g(d * i) <=> g(i)=\sum_{d=1}^{\lfloor \frac{n}{i} \rfloor} f(d * i)\mu(d)
形式二证明同形式一,略
Möbius反演的应用
方法一:构造函数法
应用一:g(n)很难直接求,但∑d|ng(d)g(n)很难直接求,但\sum_{d|n}g(d)很容易求应用二:g(i)很难直接求,但∑⌊ni⌋d=1g(d∗i)很容易求g(i)很难直接求,但\sum_{d=1}^{\lfloor \frac{n}{i} \rfloor} g(d * i) 很容易求
方法二:运用公式法
公式一:∑d|nμ(d)=[n==1]\sum_{d|n}\mu(d) = [n==1]公式二:∑d|nϕ(d)=n\sum_{d|n}\phi(d) = n
这里有一些常见问题的运用示范
http://blog.csdn.net/Lcomyn/article/details/47281717
四大要点
(1)公式推导:利用莫比乌斯反演推导出基本式子(1)公式推导:利用莫比乌斯反演推导出基本式子
要点:多往gcd上靠,lcm可以转化称gcd,新函数可以研究与gcd的关系gcd上靠,lcm可以转化称gcd,新函数可以研究与gcd的关系
(2)等价变换:变量替换,内层外移等技巧(2)等价变换:变量替换,内层外移等技巧
要点:常见的有对gcd(i,j)=dgcd(i,j)=d的替换,还有对pd=Tpd = T的替换,转换求和的思维方式,改变求和顺序
(3)线性筛法:预处理各种信息(3)线性筛法:预处理各种信息
要点:一般来说是一个奇怪的积性函数,利用筛法即可
(4)分块处理:归结到最后通过分块在根号时间内实现(4)分块处理:归结到最后通过分块在根号时间内实现
相关文章推荐
- leetcode之Best Time to Buy and Sell Stock
- PHP---语法笔记
- 从历年高考录取率看中国本科学历的含金量
- 服务器搭建局域网访问
- leetcode 326 Power of Three(难易度:Easy)
- Java中上传文件到服务器端
- 最简单的基于FFmpeg的AVDevice例子(读取摄像头)
- JAVA中的命名规范
- Cocos2d-x Text的使用
- 前端入门与深入学习必要了解的网站分享
- 蚂蚁(Ants,NEERC 2008,LA4043)
- Vijos P1062迎春舞会之交谊舞
- 算法训练 未名湖边的烦恼
- SAE: Python Django 如何 syncdb 到线上数据库
- 是 WordPress 让 PHP 更流行了 而不是框架
- 日期选择器DatePickerDialog
- 首篇博文
- 【慕课笔记】U3 继承 第2节 JAVA中的方法重写
- AC自动机模板
- 如何拿到插件Apk的Intent Filter?