1. 程式人生 > 其它 >淺析狄利克雷卷積

淺析狄利克雷卷積

定義

狄利克雷卷積是定義在數論函式間的一種二元運算:

\[(f\ast g)(n)=\sum_{xy=n}f(x)g(y) \]

也等價於下面這種形式:

\[(f\ast g)(n)=\sum_{d\mid n}f(d)g(\frac{n}{d}) \]

性質

  1. \(f,h\) 是積性函式,則 \(f\ast g\) 也是積性函式

  2. 狄利克雷卷積滿足交換律

    \[(f\ast g)(n)=\sum_{xy=n}f(x)g(y)=\sum_{xy=n}g(x)f(y)=(g\ast f)(n) \]
  3. 狄利克雷卷積滿足對函式加法的分配律

    \[\begin{aligned} (f\ast(g+h))(n)&=\sum_{xy=n}f(x)(g+h)(y)\\ &=\sum_{xy=n}(f(x)g(y)+f(x)h(y))\\ &=\sum_{xy=n}f(x)g(y)+\sum_{xy=n}f(x)h(y)\\ &=(f\ast g)(n)+(f\ast h)(n) \end{aligned} \]
  4. 狄利克雷卷積滿足結合律

    \[((f\ast g)\ast h)(n)=(f\ast(g\ast h))(n) \]
  5. 單位函式 \(\epsilon(n)=[n=1]\) 是狄利克雷卷積的單位元

    \[(\epsilon\ast f)(n)=\sum_{d\mid n}[d=1]f(\frac{n}{d})=f(n) \]
  6. 對於一個函式 \(f\) ,如果有另一個函式 \(g\) 滿足 \(f\ast g=\epsilon\) ,則稱 \(g\)\(f\)逆元

  7. 積性函式的逆元也是積性函式

常見的數論函式

  • 單位函式 \(\epsilon (n)=[n=1]\)
  • 冪函式 \(\operatorname{id}_k(n)=n^k\)
    ,當 \(k=1\) 時為恆等函式 \(\operatorname{id}(n)=n\) ,當 \(k=0\) 時為常數函式 \(1(n)=1\)
  • 尤拉函式 \(\varphi(n)\)
  • 莫比烏斯函式 \(\mu(n)\)
  • 因數個數函式 \(d(n)=\sum_{d\mid n}1\)
  • 因數和函式 \(\sigma(n)=\sum_{d\mid n}d\)

常用結論

  1. \(\varphi\ast 1=\operatorname{id}\)

    \[(\varphi\ast 1)(n)=\sum_{d\mid n}\varphi(d) \]

    用歸納法:

    • \(n=1\) 時, \((\varphi\ast 1)(1)=\varphi(1)=1=\operatorname{id}(1)\)

    • \(n=2\) 時, \((\varphi\ast 1)(2)=\varphi(1)+\varphi(2)=2=\operatorname{id}(2)\)

    • \(n\leq k\) 時, \((\varphi\ast 1)(n)=\operatorname{id}(n)\) 都成立

      那麼 \(n=k+1\)

      • \(n\) 為素數, \((\varphi\ast 1)(n)=\varphi(1)+\varphi(n)=n=\operatorname{id}(n)\)

      • \(n\) 為合數,由於 \(\varphi\)\(1\) 都為積性函式,所以 \(\varphi\ast 1\) 也是積性函式,設 \(n=n_2\times n_2\) 那麼有:

        \[(\varphi\ast 1)(n)=(\varphi\ast 1)(n_1)\cdot(\varphi\ast 1)(n_2)=n_1n_2=n=\operatorname{id}(n) \]

    綜上,命題得證

  2. \(\mu\ast 1=\epsilon\)

    \[(\mu\ast 1)(n)=\sum_{d\mid n}\mu(d) \]
    • \(n\not=1\)

      \(n=p_1^{c_1}p_2^{c_2}\cdots p_k^{c_k}\)\(n\) 的約數 \(d=p_1^{q_1}p_2^{q_2}\cdots p_k^{q_k}\) ,由 \(\mu\) 的定義可知:對於任意 \(i\leq k\) ,只有 \(q_i=0\)\(q_i=1\) 時才會對答案產生貢獻,那麼有 \(i\)\(q\)\(1\) 時,產生的貢獻是 \((-1)^i\) ,所以原式等價於 \(\sum_{i=0}^k C_k^i(-1)^i=(1-1)^k=0\)

    • \(n=1\)

      \((\mu\ast 1)(1)=\mu(1)=1\)

    綜上,\((\mu\ast 1)(n)=[n=1]=\epsilon(n)\)

  3. \(\mu\ast\operatorname{id}=\varphi\)

    \[(\mu\ast\operatorname{id})(n)=\sum_{d\mid n}\mu(d)\frac{n}{d} \]

    與第一個命題類似地,用歸納法:

    • \(n=1\) 時, \((\mu\ast\operatorname{id})(1)=\mu(1)=1=\varphi(1)\)

    • \(n=2\) 時, \((\mu\ast\operatorname{id})(2)=2\mu(1)+\mu(2)=1=\varphi(2)\)

    • \(n\leq k\) 時, \((\mu\ast\operatorname{id})(n)=\varphi(n)\) 都成立

      那麼 \(n=k+1\)

      • \(n\) 為素數, \((\mu\ast\operatorname{id})(n)=n\mu(1)+\mu(n)=n-1=\varphi(n)\)

      • \(n\) 為合數,由於 \(\mu\)\(\operatorname{id}\) 都為積性函式,所以 \(\mu\ast\operatorname{id}\) 也是積性函式,設 \(n=n_2\times n_2\) 那麼有:

        \[(\mu\ast\operatorname{id})(n)=(\mu\ast\operatorname{id})(n_1)\cdot(\mu\ast\operatorname{id})(n_2)=\varphi(n_1)\varphi(n_2)=\varphi(n) \]

    綜上,命題得證

  4. \(1\ast1=d\)

    \[(1\ast 1)(n)=\sum_{d\mid n}1=d(n) \]
  5. \(\operatorname{id}\ast 1=\sigma\)

    \[(\operatorname{id}\ast 1)(n)=\sum_{d\mid n}d=\sigma(n) \]
  6. 莫比烏斯反演\(f\ast1=g\Leftrightarrow f=g\ast\mu\)

    \[\sum_{d\mid n}f(d)=g(n)\Leftrightarrow f(n)=\sum_{d\mid n}g(d)\mu(\frac{n}{d}) \]

    可以用第二個結論和狄利克雷卷積的性質來證明:\(g\ast\mu=f\ast1\ast\mu=f\ast(1\ast\mu)=f\ast\epsilon=f\)

應用

例1

  • 題目:求 \(\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=1]\)

  • 分析:

    \[\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=1]\\ =&\sum_{i=1}^n\sum_{j=1}^m\epsilon(\gcd(i,j))\\ =&\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid \gcd(i,j)}\mu(d)\\ =&\sum_{d=1}^{\min(n,m)}\mu(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}1\\ =&\sum_{d=1}^{\min(n,m)}\mu(d)\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor \end{aligned} \]

    這樣就可以預處理出 \(\mu\) 的字首和後求出分塊處理

例2

  • 題目:求 \(\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)\)

  • 分析:

    \[\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)\\ =&\sum_{i=1}^n\sum_{j=1}^n\operatorname{id}(\gcd(i,j))\\ =&\sum_{i=1}^n\sum_{j=1}^n\sum_{d\mid \gcd(i,j)}\varphi(d)\\ =&\sum_{d=1}^{n}\varphi(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}1\\ =&\sum_{d=1}^{n}\mu(d)\lfloor\frac{n}{d}\rfloor^2 \end{aligned} \]

    同樣地,預處理出 \(\varphi\) 的字首和後求出分塊處理即可