【前置知識】
【數論分塊】
【問題描述】求令i從1到n,i整除k的和
【解決方法】顯而易見的,1~n的某個區間內,i整除k的值是相同的,所以我們只需要找到這個區間,然後用區間個數乘以這個區間的貢獻(即i整除k的值)
1view codeint res=0;2
for(int d=1;d<=nn;)
【積性函式】
對 函式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的莫比烏斯函式的**板子
1view codeintmu[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 }
莫比烏斯函式還有乙個特殊的性質:
令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 對...