码迷,mamicode.com
首页 > 其他好文 > 详细

莫比乌斯反演

时间:2019-01-01 19:55:46      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:log   分解质因数   表格   http   重要   https   理论   方法   交换   

先写点东西吧

比如说\(\mu\)函数的性质

首先\(\mu(1)=1\)

之后对于一个数\(n\),将\(n\)质因数分解,如果有任何一个质数的的指数超过\(1\),那么\(\mu(n)=0\)

否则记\(n=\prod_{i=1}^kp_i\),则\(\mu(n)=(-1)^k\)

于是就有了一条非常重要的性质

\[\sum_{d|n}\mu(d)=[n=1]\]

显然当\(n=1\)的时候满足\(\mu(1)=1\)

\(n>1\)的时候,我们可以尝试用二项式定理证明一下

\(n\)分解质因数,我们由于一个质数选择的次数超过\(1\),那么对这个\(\sum\)的贡献为\(0\),所以我们只需要考虑每一个质数被至多选择\(1\)次的情况

\(n=\prod_{i=1}^kp_i^{a_i}\),选择了\(i\)的质数的情况就是\(\binom{k}{i}\)

所以

\[\sum_{d|n}\mu(d)=\sum_{i=0}^k\binom{k}{i}(-1)^i=\sum_{i=0}^k\binom{k}{i}(-1)^i*1^{k-i}=(-1+1)^k=0\]

之后就是大名鼎鼎的莫比乌斯反演定理

\(F(n),f(n)\)为两个定义在非负整数集合上的函数

如果存在

\[F(n)=\sum_{d|n}f(d)\]

那么就存在

\[f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})\]

也可以写成

\[f(n)=\sum_{d|n}\mu(\frac{n}{d})F(d)\]

好像看起来就非常神奇的样子,尝试证明一下

\[\sum_{d|n}\mu(d)F(\frac{n}{d})=\sum_{d|n}\mu(d)\sum_{i|\frac{n}{d}}f(i)=\sum_{d|n}\sum_{i|\frac{n}{d}}\mu(d)f(i)\]

显然如果\(i\)\(\frac{n}{d}\)的约数的话,肯定也是\(n\)的约数

我们考虑一下哪一些\(d\)能枚举到\(i\)

因为\(i| \frac{n}{d}\),那么就有

\[k\times i=\frac{n}{d}\]

\[k\times i\times d=n\]

\[k\times d=\frac{n}{i}\]

所以能枚举到\(i\)\(d\)必须满足\(d|\frac{n}{i}\)

于是可以交换一下\(\sum\)

\[\sum_{d|n}\sum_{i|\frac{n}{d}}\mu(d)f(i)=\sum_{i|n}f(i)\sum_{d|\frac{n}{i}}\mu(d)\]

又因为\(\sum_{d|n}\mu(d)=[n=1]\),所以只有在\(i=n\)的时候后面的\(\sum_{d|\frac{n}{i}}\mu(d)=1\),所以这个柿子的值就是\(1\times f(n)=f(n)\)

所以就证明了\(f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})\)

其实还有一种方式的反演,是枚举倍数的反演

\[F(n)=\sum_{n|d}f(d)\]

\[f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)\]

主要适用于跟\(gcd\)相关的反演中,证明在下面的第一个题目里

好像之后这些还不太够,还有一个非常重要的东西——狄利克雷卷积

其实就是有两个数论函数\(f,g\)我们可以定义

\[h(n)=\sum_{d|n}f(d)g(\frac{n}{d})\]

那么就记\(f\times g=h\),也就是说\(f\)\(g\)的卷积为\(h\)

狄利克雷卷积有几条非常有用的性质

  1. 交换律:\(f\times g=g\times f\)

  2. 结合律:\(f\times g\times h=f\times (g\times h)\)

  3. 分配律:定义两个函数的加法为逐项相加,那么就有\(f\times(g+h)=f\times g+f\times h\)

之后还有三个看上去非常鸡肋,但是实际上非常有用的函数

  1. \(?\)单位元函数,\(?(n)=[n=1]\),在狄利克雷卷积里充当单位元的功能,显然对于任意的\(f\)都存在\(f\times ?=f\)

  2. \(I\)恒等函数,\(I(n)=1\)

  3. \(id\)单位函数,\(id(n)=n\)

我们可以从狄利克雷卷积的方法证明莫比乌斯反演

\[F(n)=\sum_{d|n}f(d)\]

写成卷积的形式,也就是\(F(n)=\sum_{d|n}f(d)*I(\frac{n}{d})\),也就是\(F=f\times I\)

我们在两边乘上\(\mu\)

\[F\times \mu=f\times I\times \mu\]

显然\(I\times \mu=\sum_{d|n}\mu(d)=?\)

也就是说\(f\times ?=F\times \mu\)

再写回来

\[f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})\]

于是我们又证明了莫比乌斯反演

所以其实莫比乌斯反演本质上就是两个柿子

\[F=f\times I\]

\[f=\mu\times F\]

通过卷积我们还可以把另一个重要的函数\(\varphi\)\(\mu\)建立联系

众所周知学反演之前的我就不知道有这样一个奇妙的性质

\[\sum_{d|n}\varphi(d)=n\]

其实就是\(\varphi \times I=id\)

但是这个性质是怎么来的呢

证明一下吧

\[\varphi(n)=\sum_{i=1}^n[(i,n)=1]=\sum_{i=1}^n\sum_{d|(i,n)}\mu(d)\]

这就是\(\mu\)的神奇性质,看到诸如\([n=1]\)就可以用\(\sum_{d|n}\mu(d)\)来代替

显然我们发现\(d\)\((i,n)\)的约数就一定是\(n\)的约数,考虑将\(\sum\)交换,继续化柿子

\[\varphi(n)=\sum_{i=1}^n\sum_{d|(i,n)}\mu(d)=\sum_{d|n}\mu(d)\sum_{d|i}1=\sum_{d|n}\mu(d)\frac{n}{d}\]

发现\(\frac{n}{d}\)其实就是\(id\)啊,于是就得到了\(\varphi =\mu \times id\)

根据反演定理,自然有\(\varphi\times I=id\)

之后还有一个并不是非常难证的柿子

\[\sum_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n}\]

以上是莫比乌斯反演和狄利克雷卷积的理论部分,好像实际做题跟理论也没什么关系

于是做完一道题就来总结一下吧

YY的GCD

Crash的数字表格

[POI2007]ZAP-Queries

[NOI2010]能量采集

[SDOI2014]数表(树状数组维护反演)

于神之怒加强版

[SDOI2015]约数个数和

以及没有什么东西的杜教筛

莫比乌斯反演

标签:log   分解质因数   表格   http   重要   https   理论   方法   交换   

原文地址:https://www.cnblogs.com/asuldb/p/10205579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!