有人问我为什么现在就要学这种鬼畜的东西←_←
我要回答两点。。。
1.我自己出某个水题时候需要用
2.从前有人告诉我数论这种东西不在我们比赛得分考虑范围内只要拿好部分分就好了。。。于是我的数论一直坑到现在没有得到丝毫缓建。。。公式恐惧症一天比一天严重。于是我不得不开始治疗
于是在写了n天某个半平面交题未果之后我决定先来搞搞mobius反演换换口味。。。
说正文啦魂淡!好吧我不扯淡了开始正文时间。
————————————->w<线割分是我——————————————-
在学莫比乌斯反演之前,要先了解一个函数:莫比乌斯函数。
这个函数我在那篇数论模板整合里面曾经写过数论模板整合(如果有人不知道怎么做的话可以先去看看),学了这么久还没有好好用过它。
莫比乌斯函数的定义如下:
对于一个数n的莫比乌斯函数 μ(n) ,满足如下性质:
1.若n=1,则 μ(n)=1 .
2.若n是互异素数的乘积,将n分解为素数乘积的形式,即n= ∏ki=1pi ,则 μ(n)=(−1)k .
3.如对上述两种情况n均不满足, μ(n)=0 .
为了更好地学习反演,我们首先要了解几条莫比乌斯函数的性质:
就是这一条性质为我们求莫比乌斯函数的值提供了极大地便利,套到线筛里面就好了。
证明:
① n=1 时,不做多余说明。。。
② n>1 ,根据唯一分解定理,可以分解 n=∏ki=1paii
对于那些含平方因子也就是存在 ai 不为1的数,它的函数值为0,对答案没有任何贡献。
所以我们来看看那些是互异素数乘积的数,每一个成为它约数的数是什么样的情况。
(1)若 d 中有0个质因子( d=1 ),其函数值为1,这样的数有 C0k 个
(2)若有1个质因子,其函数值为-1,这样的数有 C1k 个
(3)若有2个质因子,其函数值为1,这样的数有 C2k 个
。。。
所以最后我们发现 ∑d|nμ(d)=C0k−C1k+C2k−...+(−1)kCkk=∑ki=0(−1)iCik
怎么证明后面那个和式值为0?
二项式定理
(a+b)n=∑ni=0Cinaibn−i
令上面的 n=k,a=−1,b=1
得 ∑ki=0(−1)iCik=(−1+1)k =0.
该性质得证。
好了在对莫比乌斯函数了解足够多之后,我们终于可以切入正题:反演!
莫比乌斯反演有两种形式(网上百科里都只说了一种,另一种是我从PoPoQQQ神犇的课件里学来的)
已经有函数 F(n)=∑d|nf(d) ,可以导出
我们需要找到f(n)与F(n)之间的关系。从和函数定义当中,我们可以知道:
F(1)=f(1)
F(2)=f(1)+f(2)
F(3)=f(1)+ f(3)
F(4)=f(1)+f(2)+f(4)
F(5)=f(1)+f(5)
F(6)=f(1)+f(2)+f(3)+f(6)
F(7)=f(1)+f(7)
F(8)=f(1)+f(2)+f(4)+f(8)
那么:
f(1)=F(1)
f(2)=F(2)-f(1)=F(2)-F(1)
f(3) =F(3)-F(1)
f(4)=F(4) -f(2)- F(1) =F(4)-F(2)
f(5) =F(5)-F(1)
f(6)=F(6)-F(3)-F(2)+F(1)
f(7)=F(7)-F(1)
f(8)=F(8)-F(4)
从中,可以看出,若 n=p2 (p为质数)那么, F(p)=f(1)+f(p),F(n)=f(1)+f(p)+f(p2),所以,f(n)=F(p2)−F(p).
还是那个问题:怎么证?
对于 f(n)=∑d|nμ(d)F(nd) 把 F(n)的定义式代入到F(nd)里面去 得到如下过程
f(n)=∑d|nμ(d)F(nd)=∑d|nμ(d)∑i|ndf(i)
怎么化简?
还记不记得我们得到的莫比乌斯函数的性质2:)?
用它就可以继续化下去了。
原式=∑k|nf(k)∑d|nkμ(d)=f(n)
证明完毕。
已经有 F(n)=∑n|df(d) ,可以导出
—————————————>w<线割分是我—————————————–
终于到这里为止,我的公式恐惧症已经痊愈了。。。
看了这么多公式、性质、定理,那莫比乌斯反演又有什么用呢?
接下来我们就来简单说一下它的用途。
在学反演之前我们或许经常做数论题时候看到一类这样的题目:
给定n, 1≤x≤n , 1≤y≤n ,求出 F(x,y)=a 的数对的个数。
不同的题目里F会有不同的变化,见得最多的就是 gcd(x,y)或者lcm(x,y) (其实lcm也很少见)
n的范围往往比较大暴力枚举肯定行不通。
于是莫比乌斯反演在这里最大的用处就是用来简化求解公式,缩小枚举范围。
以gcd的题目为例:就以反演公式里的 f,F ,f代表限定范围内 gcd(x,y)=a 的数对数目,F代表限定范围内n|gcd(x,y)的数目。
相比起来F要好求一些,求出F代入反演公式就能得到f了。
例题我单独写题解吧。。。