莫比烏斯反演

2022-05-11 02:23:14 字數 931 閱讀 4369

莫比烏斯反演在許多情況下可以簡化運算。

定理:f(n)和f(n)是定義在非負整數集合上的兩個函式,並且滿足條件f(n)=∑d|n f(d)。

附:∑d|n 的意思是對所有n的因子d求和。

那麼,我們得到結論:

f(n)=∑d|n μ(d)f(n/d)

在上面的公式中有乙個μ(d)函式(莫比烏斯函式),它的定義如下:

(1) 若d==1,那麼μ(d)=1;

(2) 若d=p1p2p3...pk,pi均為互異素數,那麼μ(d)=(-1)k次方;

(3) 其他情況下μ(d)=0;

對於μ(d)函式,它有如下常見性質:

(1) 對任意正整數n有:∑d|n μ(d)=   1 if(n==1)  else if(n>1)  =0

(2) 對任意正整數n有:∑d|n μ(d)/d = φ(n)/n

用線性篩法求莫比烏斯函式的**:

bool vis[10045];//標記陣列,是否是素數 

int n,cnt,prime[10045],mu[10045];//n是範圍,cnt是素數個數,prime是素數陣列,mu是該數的莫比烏斯函式

void init()

for(int j=1;j<=cnt&&i*prime[j]<=n;j++)//遍歷之前的素數,並且i*prime[j]在n的範圍內 }}

}

接下來是莫比烏斯反演定理的證明:

恒等變形得: 

f(n)=∑d|nμ(d)f(nd)=∑d|nμ(d)∑k|ndf(k)=∑k|nf(k)∑d|nkμ(d)

因為之前證明的這個定理: 

∑d|nμ(d)={10n==1n>1

所以當且僅當nk=1

,即n=k時,∑d|nkμ(d)=1

,其餘時候等於0。 

故∑k|nf(k)∑d|nkμ(d)=f(n)

莫比烏斯反演 二 莫比烏斯反演定理

首先設兩個任意函式f x 和f x 定義運算 f x sum f d 這時就可以用f x 表示f x f 1 f 1 f 2 f 1 f 2 f 3 f 3 f 1 f 4 f 4 f 2 f 1 f 5 f 5 f 1 f 6 f 6 f 3 f 2 f 1 這時可以試著用f x 表示f x f ...

莫比烏斯反演

首先 莫比烏斯函式有個性質 d n d 1 n 1 0 n 1 證明 n 1時,不做多餘說明。n 1 根據唯一分解定理,可以分解n ki 1pai i 對於那些含平方因子也就是存在ai 不為1的數,它的函式值為0,對答案沒有任何貢獻。所以我們來看看那些是互異素數乘積的數,每乙個成為它約數的數是什麼樣...

莫比烏斯反演

定理 f n 和f n 是定義在非負整數集合上的兩個函式,並且滿足條件f n d nf d 那麼我們得到結論f n d n d f n d 在上面的公式中有乙個函式 d 它的定義如下 1 若d 1,那麼 d 1 2 若d p1 p2 p k 均為互異素數,那麼 d 1 k 3 其它情況下 d 0 對...