狄利克雷生成函數


本篇討論的所有函數都是積性函數。若 \(f\) 為 DGF,則 \(f\left(s\right)\) 簡寫作 \(f\)

定義

對於一個數論函數,設在 \(i\) 處的點值為 \(f_i\),則定義它的狄利克雷生成函數 DGF(Dirichlet Generating Function)為 \(f\left(s\right)=\sum\limits_{n=1}^{+\infty}\frac{f_n}{n^s}\)
若存在兩個狄利克雷生成函數 \(f,g\),其乘積為
\(fg=\sum\limits_{n=1}^{+\infty}\sum\limits_{d\vert n}f_dg_{n/d}\times n^{-s}\)
可以發現兩個 DGF 的乘積恰好為它們的狄利克雷卷積的 DGF。
黎曼 Zeta 函數定義為 \(\zeta\left(s\right)=\sum\limits_{n=1}^{+\infty}\frac{1}{n^s}\)

一些常見數論函數的 DGF

前置知識:

  • \(f\left(s-1\right)\)\(f\left(s\right)\) 點積 \(Id\) 的結果。
  • \(f\left(ks\right)\)\(f\left(s\right)\) 的第 \(x\) 位移至第 \(x^k\) 位的結果。

單位元函數 \(e\) 的 DGF 顯然為 \(e=1\)
恆等函數 \(I\) 的 DGF 為 \(I=\sum\limits_{i=1}^{+\infty}\frac{1}{i^s}=\zeta\left(s\right)\to \prod\limits_{p\in prime}\sum\limits_{i=0}^{+\infty}\frac{1}{p^{is}}=\prod\limits_{p\in prime}\frac{1}{1-p^{-s}}=\zeta\left(s\right)\)
莫比烏斯函數 \(\mu\) 的 DGF 為 \(\mu=\prod\limits_{p\in prime}\left(1-\frac{1}{p^s}\right)=\frac{1}{\prod\limits_{p\in prime}\frac{1}{1-p^{-s}}}=\frac{1}{\zeta \left(s\right)}\)
歐拉函數 \(\varphi\) 的 DGF 為 \(\varphi=\prod\limits_{p\in prime}\left(1+\sum\limits_{i=1}^{+\infty}\frac{p^i-p^{i-1}}{p^{is}}\right)=\prod\limits_{p\in prime}\frac{1-p^{-s}}{1-p^{1-s}}=\frac{\zeta\left(s-1\right)}{\zeta\left(s\right)}\)
冪函數 \(Id_k\) 的 DGF 為 \(Id_k=\prod\limits_{p\in prime}\sum\limits_{i=0}^{+\infty}\frac{p^{ik}}{p^{is}}=\prod\limits_{p\in prime}\frac{1}{1-p^{k-s}}=\zeta\left(s-k\right)\)
除數函數 \(\sigma\) 的 DGF 為 \(\sigma_k=Id_k\times I=\zeta\left(s\right)\zeta\left(s-k\right)\)

一些不常見函數的 DGF

劉維爾函數 \(\lambda\) 的 DGF 為 \(\lambda=\prod\limits_{p\in prime}\sum\limits_{i=0}^{+\infty}\frac{\left(-1\right)^i}{p^{is}}=\prod\limits_{p\in prime}\frac{1}{1+p^{-s}}=\frac{\zeta\left(2s\right)}{\zeta\left(s\right)}\)
\(\mu^2\) 的 DGF 為劉維爾函數的逆,即 \(\mu^2=\frac{\zeta\left(s\right)}{\zeta\left(2s\right)}\)
僅在 \(\texttt{Powerful Number}\) 處值為 \(1\) 的函數的 DGF 為 \(\frac{\mu^2\left(3s\right)\times I}{\mu^2\left(s\right)} = \frac{\zeta\left(2s\right)\zeta\left(3s\right)}{\zeta\left(6s\right)}\)

計算 DGF 的前綴和

如果暴力計算在 \(p^k\) 處取值,其它數用 Euler 篩計算,且 \(p^k\) 處相對易於計算,則復雜度為 \(O\left(n\right)\),可計算出所有位置前綴和。
對於某些特殊函數:

  • \(I\) :在 \(n\) 處前綴和為 \(n\),可以做到 \(O\left(1\right)\) 計算單個位置前綴和。
  • \(\mu^2\):暴力枚舉 \(\frac{1}{\zeta\left(2s\right)}\) 中有值的位置再與 \(\zeta\left(s\right)\) 卷積做到 \(O\left(n^{1/3}\right)\) 計算單個位置前綴和。
  • 僅在 \(\texttt{Powerful Number}\) 處值為 \(1\) 的函數:先預處理 \(\frac{1}{\zeta\left(s\right)}\) 在小於 \(n^{1/6}\) 處取值,\(\zeta\left(2s\right)\zeta\left(3s\right)\) 單個位置前綴和可以整除分塊做到 \(O\left(n^{1/5}\right)\),最后暴力卷積,復雜度 \(O\left(n^{1/5}\right)\)

局限性

不是所有積性函數都有用 \(\zeta\) 表示的封閉形式,如 \(d\left(i^3\right)\) 可能 就不行。
不能表示的時候還是乖乖洲閣篩或者搞奇技淫巧吧。

DGF 的乘法

\(F=GH\to F_n=\sum\limits_{d\vert n}G_dH_{n/d}\)
可以在 \(O\left(n\log n\right)\) 的時間內解決。

DGF 的除法

\(F=H/G\to \sum\limits_{d\vert n}F_dG_{\frac{n}{d}}=H_n\to F_n=H_n-\sum\limits_{d\vert n,d\neq 1}F_{\frac{n}{d}}G_d\)
可以在 \(O\left(n\log n\right)\) 的時間內解決。

DGF 的對數

\(B=\ln A\to B'=\int \frac{A'}{A}\)
所以只要求出導數和積分即可。
但因為整數的 \(\ln\) 在整數域下沒有定義,所以我們用質因子個數(相同的算多個)代替。(嚴謹證明可以參考 這個
可以在 \(O\left(n\log n\right)\) 時間內解決。

DGF 的指數

\(B=\exp A\to B'=A'B\)
類似於對數,也可以在 \(O\left(n\log n\right)\) 時間內解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM