再探數論函數
Dirichlet 捲積
兩個數論函數可以透過捲積操作來產生新的函數。
定義:Dirichlet 捲積 \(f\ast g(n)=\sum_{d\mid n}f(d)g(\dfrac n d)\)。
Dirichlet 捲積滿足交換律、結合律、對於一般加法的分配律。
這些性質留給讀者自行驗證(交換律應該是顯然的)。
舉例來說:
\( d = 1\ast 1 \)
換句話說,因數和函數是 \( 1 \) 函數與自身做捲積得到的。
寫成式子的話:
\[ \displaystyle d(n)=\sum_{d\mid n} 1=\sum_{d\mid n}1(d)\times 1\left(\frac n d\right) \]
\( \sigma = id\ast 1 \)
寫成式子的話:
\[ \displaystyle \sigma(n)=\sum_{d\mid n} d=\sum_{d\mid n}id(d)\times 1\left(\frac n d\right) \]
引理
強烈推薦拿筆動手跟著推導一遍。
\( \displaystyle\sum_{d\mid n} f(d)=\sum_{d\mid n} f\left(\frac n d\right) \)
證明
LHS 中的 \( d \) 會跑過所有 \( n \) 的所有因數。
RHS 中的 \( \frac n d \) 實際上也會跑過 \( n \) 的所有因數。
因此兩邊枚舉的數字的集合是一樣的,因此自然相等。
\( \blacksquare \)
\( \displaystyle\sum_{d\mid n}\mu(d)=[n=1] \)
也就是 \( \mu\ast 1=\epsilon \)
證明
根據莫比烏斯函數 \( \mu \) 的定義,只要 \( n \) 的因數中有平方數,則函數值為 \( 0 \)。
因此對於 \( n=p_1^{\alpha_1}p_2^{\alpha_1}\cdots p_m^{\alpha_m} \),我們只需考慮 \( \alpha_i = 1 \) 的情況,也就是 \( n=p_1\times p_2\cdots p_m \)。
再根據 \( \mu \) 的定義,對於每個質數我們可以將其視作貢獻一個 \( -1 \)。
若是 \( m \) 個質數的連乘,由於每個質數貢獻一個 \( -1 \),因此函數值就會是 \( (-1)^m \)。
對於 \( \displaystyle\sum_{d\mid p_1 p_2\cdots p_m} \mu(d)\),我們分別考慮 \( d \) 是 \( 0\sim m \) 個質數的連乘的取法。
- \( d \) 是 \( 0 \) 個質數的連乘的取法有 \( \binom{m}{0} \) 種,函數值是 \( (-1)^0 \)。
- \( d \) 是 \( 1 \) 個質數的連乘的取法有 \( \binom{m}{1} \) 種,函數值是 \( (-1)^1 \)。
- \( \vdots \)
- \( d \) 是 \( m \) 個質數的連乘的取法有 \( \binom{m}{m} \) 種,函數值是 \( (-1)^m \)。
因此
\[ \displaystyle\mu(n) = \sum_{d\mid n}\mu(d) = \sum_{i=0}^m \binom{m}{i}\times (-1)^i \]
若 \( m=0 \),則結果為 \( 1 \);否則根據二項式定理,結果為 \( 0 \)。
\( \blacksquare \)
莫比烏斯反演:
\( \displaystyle f(n)=\sum_{d\mid n}g(d)\Longleftrightarrow g(n)=\sum_{d\mid n}\mu\left(\frac n d\right)f(d) \)
也就是 \( f=g\ast 1\Leftrightarrow g=\mu\ast f \)
證明一
已知左邊,推導右邊:
\begin{align} \displaystyle\sum_{d\mid n}\mu\left(\frac n d\right)f(d) &= \sum_{d\mid n}\mu\left(\frac n d\right)\sum_{t\mid d}g(t) & \text{將 LHS 代入} \\ &=\sum_{t\mid n}\sum_{t\mid d\mid n} g(t)\times\mu\left(\frac n d\right) & \text{交換 } \sum \text{ 的順序} \\ &=\sum_{t\mid n}\sum_{d\mid \frac n t} g(t)\times\mu\left(\frac{n}{dt}\right) & \text{將枚舉的 } d \text{ 除 } t \text{,並在式子中補回去}\\ &=\sum_{t\mid n}g(t) \left(\sum_{d\mid \frac n t} \mu\left(\frac{\left(\frac{n}{t}\right)}{d}\right)\right) & g(t) \text{ 與 } d \text{無關,可以移到前面} \\ &=\sum_{t\mid n}g(t) \left(\sum_{d\mid \frac n t} \mu(d)\right) & \text{注意到括號裡就是枚舉 } \frac n t \text{ 的因數} \\ &=\sum_{t\mid n}g(t) \left[\frac{n}{t} =1\right] & \text{根據上一條引理} \\ &=g(n) & \text{根據定義可知只有 } t=n \text{ 時才有值} \end{align}
注意到交換 \( \sum \) 的這一個步驟,此時的 \( t \)、\( d \)、\( n \) 之間滿足 \( t\mid d\mid n \)。
因此在已知 \( n \) 的條件下,
- 先枚舉 \( d \) 再枚舉 \( d \) 的因數作為 \( t \)
- 先枚舉 \( t \) 再枚舉其小於等於 \( n \) 的倍數作為 \( d \)
兩種枚舉方法其實是一樣的。
已知右邊,推導左邊:
\begin{align} \displaystyle\sum_{d\mid n}g(d)&=\sum_{d\mid n}\sum_{t\mid d}\mu\left(\frac d t\right)f(t) & \text{將 RHS 代入} \\ &= \sum_{t\mid n}\sum_{t\mid d\mid n} f(t)\times\mu\left(\frac d t\right) & \text{交換 } \sum \text{ 的順序} \\ &= \sum_{t\mid n}\sum_{d\mid\frac n t} f(t)\times\mu(d) & \text{將枚舉的 } d \text{ 除 } t \text{,並在式子中補回去}\\ &= \sum_{t\mid n}f(t)\times\left( \sum_{d\mid\frac n t}\mu(d) \right) & f(t) \text{與 } d \text{無關,可以移到前面} \\ &= \sum_{t\mid n}f(t)\times \left[\frac{n}{t} =1\right] & \text{根據上一條引裡} \\ &= f(n) & \text{根據定義可知只有 } t=n \text{ 時才有值} \end{align}
至此兩個方向可以互相推導,因此證明完畢。
\( \blacksquare \)
證明二
以捲積的角度來看的話,將 LHS 的兩邊對 \( \mu \) 做捲積:
\[ \mu\ast f=g\ast 1\ast\mu=g\ast\epsilon=g \]
將 RHS 的兩邊對 \( 1 \) 做捲積:
\[ g\ast 1=\mu\ast 1\ast f=\epsilon\ast f=f \]
因此兩個方向能夠互相推導,得證。
\( \blacksquare \)
\( \displaystyle f(n)=\sum_{n\mid d}g(d)\Longleftrightarrow g(n)=\sum_{n\mid d}\mu\left(\frac d n\right)f(d) \)
不同於莫比烏斯反演,這裡的 \( d \) 是枚舉 \( n \) 的倍數。
不用懷疑,它就是會無止盡的枚舉下去。
證明的方法與莫比烏斯反演的證明一雷同,這裡不再贅述。
\( \displaystyle\sum_{d\mid n}\varphi(d)=n \)
\( \displaystyle\varphi(n)=\sum_{d\mid n}\mu\left(\frac n d\right)\times d \)
證明
我們先證明上式。
固定 \( n \) 的因數 \( d \),我們想計算 \( 1\sim n \) 中與 \( n \) 的 \( \gcd \) 為 \( d \) 的數字有幾個。
注意到:
\[ \gcd(i, n) = d\Longleftrightarrow \gcd\left(\frac{i}{d}, \frac{n}{d}\right)=1 \]
因此 \( 1\sim n \) 中與 \( n \) 的 \( \gcd \) 為 \( d \) 的數字共有 \( \varphi\left(\frac n d\right) \) 個。
另一方面,所有 \( 1\sim n \) 的數字和 \( n \) 的 \( \gcd \) 一定是 \( n \) 的某個因數。
所以自然地,\( \displaystyle n=\sum_{d\mid n}\varphi\left(\frac n d\right)=\sum_{d\mid n}\varphi(d) \)。
\( \blacksquare \)
接著我們由上式來證明下式。
證明:
注意到上式的捲積寫法為:\( \varphi\ast 1=id \)。
由莫比烏斯反演即可得到下式 \( \varphi = id\ast\mu \)。
也因為同樣的原因,因此上下式其實是能夠互相推導的。
\( \blacksquare \)
例題
- \( \sum_{i=1}^N\sum_{j=1}^M [\gcd(i,j)=1] \)
- \( \sum_{i=1}^N\sum_{j=1}^M [\gcd(i,j)\ \mbox{is prime}] \)
- \( \sum_{i=1}^N\sum_{j=1}^M \gcd(i,j) \)
- \( \sum_{i=1}^N\sum_{j=1}^M ij\times \gcd(i,j) \)
套路
可以發現,使用到的技巧不外乎是:
- 看到 \(\gcd\) 就枚舉他
- 看到艾佛森括號就把他換掉
- 原本枚舉因數的,就改成枚舉倍數
- 原本枚舉倍數的,就改成枚舉因數
- 把枚舉的倍數提出原本的數
- 看到長得像 Lemma 的就套套看
- 看到兩個 \(\Sigma\) 的變數乘在一起,就改成枚舉兩者乘積和其因數
習題
- \( \sum_{i=1}^N\sum_{j=1}^M [\gcd(i,j)\ \mbox{is a perfect number}] \)
- \( \sum_{i=1}^N\sum_{j=1}^M lcm(i,j) \)
- \( \sum_{i=1}^N\sum_{j=1}^M \sigma_0(ij) \)
- \( \prod_{i=1}^N\prod_{i=1}^M F_{\gcd(i,j)} \)
其中 \( \sigma_0 \) 是因數數量;\( F \) 是費氏數列。
每一題都有 \( Q \) 筆詢問,\( N、M、Q\le 1e5 \)
其他
- 給定一棵邊帶權樹,一個路徑的價值是路徑上所有權重的 \( \gcd \),求所有相異路徑的價值總和
- (點數、權重 \( \le 10^5 \))
- 給定 \( a_1,\cdots,a_n\)(\( n\le 10^5 \)),求 \( \sum_{i=1}^n \sum_{i=1}^n \gcd(a_i,a_j)\times\gcd(i,j) \)