演算法學習 莫比烏斯反演

2022-07-24 12:09:14 字數 2132 閱讀 1307

【前置知識】

【數論分塊】

【問題描述】求令i從1到n,i整除k的和

【解決方法】顯而易見的,1~n的某個區間內,i整除k的值是相同的,所以我們只需要找到這個區間,然後用區間個數乘以這個區間的貢獻(即i整除k的值)

1

int res=0;2

for(int d=1;d<=nn;)

view code

【積性函式】

對 函式f(x) ,滿足當a,b互質時,有f(a*b)=f(a)*f(b),則稱函式f(x)為積性函式

積性函式一般都可以通過埃篩或者線性篩常數時間求取

此處列舉幾個比較重要且常用的積性函式

φ(x) :  尤拉函式,小於等於x且和x互質的數的個數

ι (x): 函式值恒為1的函式

id(x):   函式值等於x的函式

ε(x): 元函式,只有當x等於1時為1,其餘情況均為0

【莫比烏斯函式】

ti 是指第 i 個數的質因子的冪次方

函式定義是:

1.當n==1時,函式值等於1

2.當有質因子的冪次方大於1的情況,函式為0

3.當所有的質因子的冪次方都等於1時,函式為(-1)的k次方,k指不同的質因子的個數

求1~maxn的莫比烏斯函式的**板子

1

intmu[maxn], prime[maxn],vis[maxn],sum[maxn];

2int cnt = 0;3

void

init()414

for (int j = 1; j <= cnt && i*prime[j])

1522

else

2326}27

}28for (int i = 1; i < maxn; i++)

29 sum[i] = sum[i - 1] +mu[i];

30 }

view code

莫比烏斯函式還有乙個特殊的性質

令f(x)等於,x的所有因子的莫比烏斯函式的和

則f(x)的函式值只有當x為1時等於1,其餘情況均為0

(利用質因子互質的性質可以證出來,此處就不給出證明)

【狄利克雷卷積】

狄利克雷卷積是對兩個函式進行操作,函式f,g的卷積等於,令d為n的因子,有f(d)*g(n/d),n的所有因子的和即為f,g的狄利克雷卷積

有性質:

由上面的狄利克雷卷積定義我們可以得到以下結論:

【結論一】由莫比烏斯函式的特殊性質可知,有i*μ==ε

【結論二】和莫比烏斯函式類似,尤拉函式也有一特殊性質:

令f(x)等於,x的所有因子的尤拉函式的和 

則f(x)的函式值為x

(利用尤拉函式的定義可以證出來,此處就不給出證明)

1.φ*ι==id

2.    φ==id*μ

推導和結論如下:

【莫比烏斯反演】

(摘自推導過程如下

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

首先設兩個任意函式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 對...