若想使用莫比烏斯反演,熟練掌握狄利克雷卷積包括定義、記號以及相關的性質、證明等是非常有好處的。
數論函數與積性函數
數論函數也稱作算術函數,就是定義在正整數上的函數,也可看作是一個數列。例如:
f(n)=2n−1
就表示了一個數論函數,其實就是:
[1,3,5,7,9,...]
跟狄利克雷卷積有關的常見數論函數有:
全1函數u:
u(n)=1
即:
[1,1,1,1,1,...]
恆等函數ID:
ID(n)=n
即:
[1,2,3,4,5,6,7,8,9,10,...]
單位元函數e:
e(n)={10n=1其他
即:
[1,0,0,0,0,...]
積性函數是指如果某個數論函數f(n)滿足當gcd(a,b)=1時有f(a⋅b)=f(a)⋅f(b)成立,則稱函數f爲積性函數。以下提到的函數都是積性函數。
狄利克雷卷積
狄利克雷卷積是對2個數論函數的操作,定義如下:
h(n)=f(n)∘g(n)=ij=n∑f(i)⋅g(j)
2個數論函數的狄利克雷卷積仍然是一個數論函數。
例如,考慮全1函數與恆等函數的狄利克雷卷積(只取前10個),設之爲σ,得到:
|
σ(1)=u(1)⋅ID(1)=1 |
σ(2)=u(1)⋅ID(2)+u(2)⋅ID(1)=3 |
σ(3)=u(1)⋅ID(3)+u(3)⋅ID(1)=4 |
σ(4)=u(1)⋅ID(4)+u(2)⋅ID(2)+u(4)⋅ID(1)=7 |
σ(5)=u(1)⋅ID(5)+u(5)⋅ID(1)=6 |
σ(6)=u(1)⋅ID(6)+u(2)⋅ID(3)+u(3)⋅ID(2)+u(6)⋅ID(1)=12 |
σ(7)=u(1)⋅ID(7)+u(7)⋅ID(1)=8 |
σ(8)=u(1)⋅ID(8)+u(2)⋅ID(4)+u(4)⋅ID(2)+u(8)⋅ID(1)=15 |
σ(9)=u(1)⋅ID(9)+u(3)⋅ID(3)+u(9)⋅ID(1)=13 |
σ(10)=u(1)⋅ID(10)+u(2)⋅ID(5)+u(5)⋅ID(2)+u(10)⋅ID(1)=18 |
實際上,σ(n)就是n的因子和,因此全1函數與恆等函數的狄利克雷卷積就是因子和函數。
再考慮前面提到的單位元函數e,稍加推理可知:
f(n)∘e(n)=f(n)
即,任意函數與單位元函數做卷積仍然得到自身,因此e稱爲單位元。
莫比烏斯函數
實際上,所有的數論函數與狄利克雷卷積操作可以構成一個羣,因此對每一個數論函數必然有逆元存在。也就是說每一個函數與其逆元的狄利克雷卷積可以得到單位元函數。全1函數的逆元稱爲莫比烏斯函數μ,即:
u∘μ=e
莫比烏斯函數就是全1函數的逆元,這個定義有助於後續的證明和計算,同時也可以依次推出莫比烏斯函數的每一個具體取值。當然,還有一個分段函數的表達,可以更直觀的計算莫比烏斯函數的值:
μ(n)={(−1)k0n=p1p2...pk其他
也就是莫比烏斯函數只有三個可能的取值:0、-1和1。如果n包含平方數的因子,則μ(n)=0;否則,n的質因子分解的所有質因子指數必然全是1,此時,n有偶數個質因子μ(n)=1,奇數個質因子則是μ(n)=−1。
相關性質
性質1:全1函數的狄利克雷卷積就是因子數量函數,記作τ;恆等函數與全1函數的狄利克雷卷積就是因子和函數,記作σ。
τ(n)=u(n)∘u(n)
σ(n)=ID(n)∘u(n)
利用狄利克雷卷積的定義很容易證明。
性質2:當n不等於1時,其所有因子的莫比烏斯函數函數值之和爲0;當n等於1時,其和爲1。寫成數學表達爲:
d∣n∑μ(d)=[n==1]
其中“[條件]”表示示性函數,條件爲真則該函數值爲1,否則函數值爲0。這個也很容易證明,左邊就是全1函數與莫比烏斯函數的卷積,右邊就是單位元函數。這兩者就是相等的。
性質3:恆等函數與莫比烏斯函數的卷積等於歐拉函數。其中,歐拉函數記作φ(n),表示不超過n的與n互質的數的數量。即:
ID(n)∘μ(n)=d∣n∑d⋅μ(dn)=φ(n)
如果能夠熟練使用各種記號,上式很容易證明。首先將φ(n)寫作:
φ(n)=i∑[gcd(i,n)==1]
這是顯然的,就是歐拉函數的定義。然後利用上面的第2條性質,
i∑[gcd(i,n)==1]=i∑d∣gcd(i,n)∑μ(d)
對等式右邊而言,對每一個d(d是gcd(i,n)的因子,當然同時也是n和i的因子),實際上就是問在1~n中有多少數滿足其有d的因子,這個數量當然就是n/d個。所以,
i∑d∣gcd(i,n)∑μ(d)=d∣n∑dn⋅μ(d)
該性質的一個推論是:
nφ(n)=d∣n∑dμ(d)
使用積性函數的性質也可以證明這一點。
當n=1時,上述等式顯然成立。當n爲質數時,記作p,則:
d∣p∑dμ(d)=1μ(1)+pμ(p)=p1−p=pφ(p)
等式也成立。當n=pk時,
d∣pk∑dμ(d)=1μ(1)+pμ(p)+p2μ(p2)+⋅⋅⋅=p1−p=pkφ(pk)
等式亦成立。所以在n只含一個質因子情況下,ID(n)∘μ(n)=φ(n)是成立的。考慮更一般的情況,n=p1k1⋅⋅⋅pnkn,有
ID(n)∘μ(n)=ID(p1k1⋅⋅⋅pnkn)∘μ(p1k1⋅⋅⋅pnkn)=ID(p1k1)∘μ(p1k1)⋅⋅⋅ID(pnkn)∘μ(pnkn)=p11−p1⋅⋅⋅pn1−pn=φ(n)
性質4:莫比烏斯反演,設函數f(n)=∑d∣ng(d),則g(n)=∑d∣nf(n/d)⋅μ(d)。
使用狄利克雷卷積記號很容易證明這個結論,已知條件實際上就是
f=u∘g
兩邊同時卷積莫比烏斯函數,注意到狄利克雷卷積滿足交換律與結合律,且全1函數與莫比烏斯函數的卷積結果爲單位元函數,所以
g=f∘μ
這就是莫比烏斯反演的結論。
性質5:莫比烏斯倍數反演,莫比烏斯反演有兩種形式,性質4中的是約數反演,還有一種倍數反演,如下,若有
f(n)=n∣d,d≤N∑g(d)
則有
g(n)=n∣d,d≤N∑μ(nd)f(d)
其中,N是一個上限。
關於倍數反演的證明,
n∣d,d≤N∑μ(nd)f(d)=n∣d,d≤N∑(μ(nd)d∣t,t≤N∑g(t))=n∣d,d≤N∑(g(d)t∣nd∑μ(t))
關於上式中第二個等號,將求和記號寫開,就可以推導出來。
根據性質2可知,∑t∣ndμ(t)=[nd==1],也就是說當d=n時,結果爲1,其餘結果均爲0。所以最終可推出:
n∣d,d≤N∑μ(nd)f(d)=g(n)
基礎問題與公式
問題1:在1~N的範圍內,互質的數對一共有多少對?即問i∑j∑[gcd(i,j)==1]
這個問題的解是:i=1∑Nj=1∑N[gcd(i,j)==1]=d=1∑Nμ(d)⋅⌊N/d⌋⋅⌊N/d⌋推導過程如下,根據性質3有i∑j∑[gcd(i,j)==1]=i∑j∑d∣gcd(i,j)∑μ(d)考慮每一個可能的d,即d取值1,2,3,4,5,...,有多少對(i,j)滿足i有因子d同時j也有因子d呢?當然是⌊N/d⌋⋅⌊N/d⌋。其中,⌊⌋表示向下取整,也就是C++中的整型除法運算。所以,公式1成立。另一個辦法是使用性質5莫比烏斯倍數反演來證明。令,f(n)=[(i,j)有公因子n]即,f(n)是1∼N之間有公因子n的數對的數量,顯然有,f(n)=⌊N/n⌋⋅⌊N/n⌋再令,g(n)=[gcd(i,j)==n]即,g(n)是1∼N之間gcd爲n的數對的數量,有,f(n)=n∣d,d≤N∑g(d)根據性質5有,g(n)=n∣d,d≤N∑μ(nd)f(d)
所求實際上就是g(1),可得g(1)=d=1∑Nμ(d)f(d)=d=1∑Nμ(d)⋅⌊N/d⌋⋅⌊N/d⌋
問題1還有另外一種做法,只考慮[gcd(i,j)==1,x>y],實際上就是求歐拉函數的和,如下:i=2∑Nφ(i)這個數乘以2就得到了所有的不相等且互質的數對的數量。而相等又能互質的數對只有1對,就是(1, 1),所以再加1即可。
問題2:在1~N的範圍內,gcd爲質數的數對一共有多少對?即問pk∑i∑j∑[gcd(i,j)==pk]其中,pk是N以內的質數。考慮到,gcd(i,j)=p則gcd(i/p,j/p)=1所以pk∑i∑j∑[gcd(i,j)==pk]=pk∑i∑j∑[gcd(i/pk,j/pk)==1]=pk∑d=1∑⌊pkN⌋μ(d)⋅⌊d⌊pkN⌋⌋⋅⌊d⌊pkN⌋⌋
問題3:i在1~N範圍內,j在1~M範圍內,問互質的數對的數量有多少對?
仿照問題1的解法即可。注意到d必須是(i,j)的公因子,所以d必然不超過min(N,M),所以i=1∑Nj=1∑M[gcd(i,j)==1]=d=1∑min(N,M)μ(d)⋅⌊N/d⌋⋅⌊M/d⌋