狄利克雷卷積與莫比烏斯反演
主要內容
- 數論函式
- 狄利克雷卷積
- 積性函式
- 莫比烏斯反演
- 數論分塊
提要
\(a \bot b\) 表示 \(a\) 與 \(b\) 互質。
數論函式
數論函式是一類定義域是正整數的函式,可以類比數列。
加法,數乘比較簡單,略過。
狄利克雷卷積
定義兩個數論函式的狄利克雷卷積為 \(*\)。
若 \(h = f * g\) 則:
-
其具有交換律,結合律,分配律等,比較顯然。
-
有單位元 \(\epsilon\),有性質 \(\epsilon * f = f\)。可以得出 \(\epsilon = [n=1]\)。
-
逆元,對於 \(f(1) \not = 0\),有一個 \(g\) 使得 \(f * g = \epsilon\)。
如何求函式的逆元。
令:
可以用方程求出 \(g\)。
如此:
積性函式
對於一個數論函式,如果有 \(i \bot j\) 使得 \(f(i \cdot j) = f(i) \cdot f(j)\)。
那麼此函式成為積性函式。
如果對於任意的 \(i\),\(j\) 都有 \(f(i \cdot j) = f(i) \cdot f(j)\) 那麼其為完全積性函式。
常見的積性函式有:
-
\(\epsilon\) 解析式 \(\epsilon(n)=[n=1]\)
-
\(id^k\) 解析式 \(id^k(n) = n^k\)
特殊的 \(1(n) = id^0(n) = 1\)
-
\(\phi\) 表示 \([1,n]\) 中與其互質的數的個數。
-
\(\sigma_0\) 表示因數個數。
它們的積性比較顯然,不證。
記住兩個結論:
-
兩個積性函式的狄利克雷卷積是積性函式
-
積性函式的逆是積性函式
比較複雜,不打算證明了。
如何利用積性函式的結論,最簡單的是,可以線性篩,因為我們線性篩的過程中順便求出了其最小的質因子,可以利用積性解決函式的取值。
同時由於積性的性質,函式的取值實際上又其所有質數冪處的取值決定,對於這些取值,\(\phi\) 和 \(\sigma_0\) 都是比較好求的,所以可以用線性篩預處理。
給出質數冪處的公式:
一個重要性質。
嘗試證明 \(\phi * 1 =id\)
由於上文提及的狄利克雷卷積的性質,\(\phi * 1\) 為積性函式,\(id\) 也為積性函式,所以只需要證明其在質數冪上相等即可。
顯然有:
得證。
莫比烏斯反演
定義 \(1\) 的逆是 \(\mu\)。
如此,若 \(g = f * 1\),那麼就有 \(f = g * \mu\)。
即若 \(g(n) = \sum_{d|n} f(d)\) 則,\(f(n) \sum_{d|n} \mu(\frac{n}{d})g(d)\)。
比如根據上文性質有 \(\phi = \mu * id\)。
那麼有 \(\phi(n) = \sum_{d|n} \mu(\frac{n}{d})d\)。
又有 \(id^k\) 的逆為 \(f(n) = n^k\cdot\mu(n)\)。
我們可以算出
當 \(n=p_1\cdot p_2 \dots p_k\) 其中 \(p\) 為不同的質數時,\(\mu(n)=(-1)^k\)。
否則,\(\mu(n) = 0\)。
記住結論吧。
另一個方向上的莫比烏斯反演。
\(g(x) = \sum_{n|d} f(d)\)
定義新操作 \(\oplus\)。
\((f \oplus g)(x) = \sum_{n|d}f(\frac{d}{n})g(d)\)。
可以證明:
那麼:
所以:
數論分塊
淺談。
經典問題是處理:
我們不難發現 \(\lfloor \frac{n}{i} \rfloor\) 最多有 \(O(\sqrt{n})\) 個取值。
進行一個簡單的說明。
當 \(i<\sqrt{n}\) 時:\(i\) 的取值有 \(\sqrt{n}\) 個。
當 \(i>\sqrt{n}\) 時:\(\frac{n}{i}<\sqrt{n}\) 取值有 \(\sqrt{n}\) 個。
考慮如何快速的求出所有 \(\lfloor \frac{n}{i} \rfloor\) 的取值。
for(int i=1,j;i<=n;i=j+1){
j=n/(n/i);
}
證明自行百度,可以感性理解。
此處,既然我們已經求出了 \([i,j]\) 中的數 \(\lfloor \frac{n}{i} \rfloor\) 一致,我們可以把它們放在一起計算,對於 \(f\) 求一個字首和即可。
對於多元的情況,我們也可以類似的處理。
例題
P1447 [NOI2010] 能量採集
首先定義:
故有:
答案為:
莫比烏斯反演:
令 \(T = dq\)。
更換 \(d\) 和 \(T\) 的列舉順序。
關注後面的部分:
發現這是狄利克雷卷積的形式。
帶回原來的式子。
數論分塊即可。
參考程式碼