莫比烏斯反演基礎

2017 CDQZ 聯訓 中向 HSZX 的大佬請教了一些關於莫反的知識,特此感謝!

本文僅介紹一些關於莫比烏斯反演的基礎知識。

聲明

本文中,若無特殊聲明p1a1p2a2...Pkak 表示一個數的質因數分解,i,prime(pi)aiN+

莫比烏斯函數

定義

莫比烏斯函數是在數論中一個很重要的積性函數,定義如下。

若正整數x可質因數分解爲:

x=p1a1p2a2...Pkak

μ(x)={0:ai21:k0mod21:k1mod2

即當x1 ,且不存在平方因子時:

μ(x)=(1)k

當x存在平方因子時:

μ(x)=0

特殊地:

μ(1)=1

一些性質

此性質可用來判斷一個數是否等於一。

d|nμ(d)=[n=1]

證明:

n=1 時顯然成立。

n1 時,不妨令n=p1a1p2a2...Pkak ,那麼n的因子d=p1b1p2b2...Pkbk,0biai

bi2,μ(d)=0 對答案沒有貢獻。

因此,對答案有貢獻d一定滿足bi0,1

枚舉每一個有貢獻的d,就相當於是從bi 中選出若干個置爲1,其他的置爲0。

從k個位置中選出j個位置的方案數爲Ckj ,而一個由j個質因子組成的數d,有μ(d)=(1)j 。所以,所有由j個質數組成的d對答案的貢獻和爲Ckj(1)j

因爲 j{0,1,2,...,k} ,所以:

d|nμ(d)=j=0kCkj(1)j

根據二項式定理:

j=0kCkjxj=(x+1)k

所以:

d|nμ(d)=j=0kCkj(1)j=((1)+1)k=0

得證。

歐拉函數

定義

φ(x),xN+ 表示小於x且與x互質的數的個數。

特殊地

φ(1)=1

一些性質

積性函數の積性

gcd(a,b)=1φ(ab)=φ(a)φ(b)

證明很顯然。

2018.3.16 填坑,後來我驚奇得發現這一點都不顯然。。

gcd(n,m)=1 , 考慮φ(nm) 的物理意義。

1         2         3        ...  r       ...     m-1       m
m+1       m+2       m+3      ...  m+r     ...    2m-1      2m
2m+1     2m+2      2m+3      ... 2m+r     ...    3m-1      3m
.        .         .                             .         .
.        .         .                             .         .
.        .         .                             .         .
(n-1)m+1 (n-1)m+2  (n-1)m+3 ... (n-1)m+r  ...    nm-1      nm

φ(nm) 的物理意義爲上表中與nm互質的數的個數。

因爲n和m互質,所以不難證明:一個數x與nm互質的充要條件爲x與n互質且x與m互質。

證明:設P(x)爲x的質因子集合。因爲n和m互質,所以P(n)P(m)=ϕ , P(nm)=P(n)P(m)
gcd(x,n)=1P(x)P(n)=ϕ
gcd(x,m)=1P(x)P(m)=ϕ
P(n)P(m)=ϕ,P(x)(P(n)P(m))=ϕP(x)P(n)=ϕ,P(x)P(m)=ϕ
得證。

發現每一列元素與m的gcd都相同,考慮有哪些列是與m互質的。根據定義,這樣的列有φ(m) 列。

再考慮這些列中的每一列中與n互質的數的個數,因爲每一橫行的數在模n意義下同餘。所以每一列有φ(n) 個元素與n互質。綜上,φ(nm)=φ(n)φ(m) ,及歐拉函數爲積性函數。

補坑結束。


另外,當p爲質數時:

φ(p)=p1

這更加顯然。

另一個基本性質

x=p1a1p2a2...pkak,d=pi

φ(xd)=φ(x)d

證明:

首先t=piaiφ(t)={1:ai=0(pi1)piai1:ai>0 ,pi 是質數。

考慮把一個數化成pi 進制數,t一定能表示成一個1後面ai 個0的形式。對於任意的一個小於t的數d與t互質,當且僅當把t化成pi 進制後最後一位不爲零。所以說d這個aipi 進制數,除了最低位不能爲0,有pi1 種可能外,其它的位是什麼都可以,各有pi 種可能。因此上式成立。

這樣的話就有:φ(pik+1)=φ(pik)pi ,kN+

φ(xd)=φ((p1a1p2a2...pi1ai1pi+1ai+1...pkak)×piai+1)=φ(p1a1p2a2...pi1ai1pi+1ai+1...pkak)×φ(pi(ai)+1)=φ(p1a1p2a2...pi1ai1pi+1ai+1...pkak)×φ(piai)pi=φ(x)d

得證。

還有一個比較重要的性質:

d|nφ(d)=n

哪位大神能教我一下這個怎麼證啊!留坑待補。

[2018.1.22] 在此補坑。前幾天碰巧在學校遇到了樊神,向樊神請教了一番,樊神幾句話就證出來了,真是佩服。

f(n)=d|nφ(d) ,顯然有f(1)=1

對於一個質數pf(p)=φ(1)+φ(p)=1+(p1)=p ,顯然成立。

數學歸納一下,對於一個質數的若干次冪pk ,若此性質已經對pk1 成立:

f(pk)=t=0kφ(pt)=φ(pk)+t=0k1φ(pt)=φ(pk)+f(pk1)=(p1)pk1+pk1=pk

又因爲該性質對k=1成立,所以該性質對任意正整數k成立。

對於一個數n,n與pk (p爲素數)互質,那麼這個數的所有因子一定能寫成n的所有因子乘上p的若干次冪的形式。

若n已經滿足f(n)=n 的性質,

f(npk)=d|n(t=0kφ(dpt))

又因爲n與pk 互質,所以d與pk 也一定互質,φ 是積性函數,所以φ(dpt)=φ(d)φ(pt)

所以f(npk)=d|n(t=0kφ(dpt))=d|nφ(d)(t=0kφ(pt))=d|nφ(d)f(pk)=f(pk)d|nφ(d)=f(pk)f(n)=npk

對於任意的一個數都可以進行質因數分解,分解成n=1p1a1p2a2...Pkak 的形式,因爲1是成立的,質數兩兩互質,所以任意正整數n都滿足f(n)=n

得證。

[2018.1.22] 填坑到此結束,後面的內容爲之前所寫。

利用這個性質可以有:

i=1ni=i=1nd|iφ(d)=d=1nφ(d)×nd

這裏給出歐拉函數的暴力求法:

x=p1a1p2a2...pkakφ(x)=x(11p1)(11p2)...(11pk)

證明:

φ(x)=φ(p1a1p2a2...pkak)=φ(p1a1)φ(p2a2)...φ(pkak)=(p11)p1(a1)1(p21)p2(a2)1...(pk1)pk(ak)1=(11p1)p1a1(11p2)p2a2...(11pk)pkak=x(11p1)(11p2)...(11pk)

得證。

狄利克雷卷積

一種生成函數的運算,定義如下:

(f×g)(n)=d|nf(d)g(nd)

常見積性函數

單位函數:id(n)=n

元函數:e(n)=[n==1]

1函數:I(n)=1

約數個數:d(n)=d|n1

一些常見的性質

f 爲積性函數。

(f×e)(n)=d|nf(d)×e(nd)=d|nf(d)×[nd=1]=f(n)

即:

f×e=f

另外,狄利克雷卷積滿足交換律和結合律。

φ×I=id

證明:

φ×I=d|nφ(d)I(nd)=d|nφ(d)=n

得證。

μ×I=e

證明:

(μ×I)(n)=d|nμ(d)I(nd)=d|nμ(d)=[n=1]=e(n)

莫比烏斯反演

內容

若:

F(n)=d|nf(n)

則:

f(n)=d|nμ(d)F(nd)

用狄利克雷卷積表述如下:

若:

F=f×1

則:

f=F×μ

從這個角度來講,證明就很簡單了:

F×μ=(f×1)×μ=f×(1×μ)=f×e=f

杜教篩原理

求積性函數前綴和:

S(n)=i=1nf(i)

當f的前綴和不好求的時候,考慮一個前綴和比較好求的g,求f×g 的前綴和。

i=1n(f×g)(i)=i=1nd|ig(d)f(id)

枚舉d,存在一個d|i ,那麼f(id) 就要和g(d) 相乘,而i可以爲d,2d,3d,...,dnd ,所以S(nd)g(d) 相乘就是g(d) 的貢獻。

=d=1ng(d)i=1ndf(i)=d=1ng(d)S(nd)

所以:

i=1n(f×g)(i)=d=1ng(d)S(nd)=g(1)S(n)+i=2ng(i)S(ni)

所以:

S(n)=i=1n(f×g)(i)i=2ng(i)S(ni)g(1)

這樣的話如果g(f×g) 的前綴和都很好求,那麼計算S(n) 只需要S(n2),S(n3),..,S(nn)=S(1) 。而又因爲ni 只有O(n) 種取值,所以記憶化搜索一下會有奇效。

關於ni 的取值問題的證明。

1in 時,就算是結果兩兩各不相同,ni 也只有n 種取值。

n<in 時,1ni<n ,就算是取遍值域中的所有值,也只有n 種取值。

因此ni 的取值種數不超過2n 種,即O(n) 種。

得證。

用線性篩求出前n23 的前綴和之後再遞推,可以將O(n34) 優化到O(n23)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章