跳转至

回忆:狄利克雷卷积与积性函数

狄利克雷卷积

我们称一个函数 \(f\) 是数论函数(算术函数),当且仅当 \(f\) 的定义域为 \(\mathbb N^+\),值域为 \(\mathbb C\)

我们定义狄利克雷卷积如下:

\[ f*g(n)=\sum_{i|n}f(i)g(\frac{n}{i}) \]

区别于狄利克雷卷积,我们定义数论函数的乘法为:

\[ (f\cdot g)(n)=f(n)\cdot g(n) \]

直接套用定义,不难证明狄利克雷卷积有交换律,结合律,对加法的分配律,并且存在单位元 \(\epsilon(n) =[n=1]\)。并且对于任何一个 \(f(1)\neq 0\)\(f\),总存在一个逆元 \(g\) 使得 \(f*g=\epsilon\)。实际上数论函数在狄利克雷卷积作为乘法,函数加法作为加法的情况下构成整环

这里看起来只有逆元是非平凡的,让我们来研究一下逆元:

\[ \sum_{i\mid n}f(i)g(\frac{n}{i})= \epsilon(n) \]

要求出 \(g(n)\),那么:

\[ f(1)g(n)+\sum_{i\mid n,i\neq 1}f(i)g(\frac{n}{i})=\epsilon(n) \]

显然有:

\[ g(n)=\frac{1}{f(n)}\left(\epsilon(n)-\sum_{i\mid n,i\neq 1}f(i)g(\frac{n}{i})\right) \]

积性函数

如果对于任意满足 \(n\perp m\)\(n,m\in \mathbb N^+\),有 \(f(n)f(m)=f(nm)\),我们则称 \(f\) 是积性的。如果连 \(n\perp m\) 的条件也不需要,我们称其为完全积性的。

如果将正整数的每一个质因子视作独立的一维,积性的含义就是可以将两个维度不交的向量处的信息快速合并起来。

可以证明,两个积性函数的狄利克雷卷积仍然是积性函数,积性函数在狄利克雷卷积意义下的逆也是积性函数。

常见积性函数

下面举例列出一些常见的积性函数:

  • \(\epsilon (n)=[n=1]\) (元函数)
  • \(\mathbf{id}^k(n)=n^k\)
  • \(\mathbf{I}(n)=1\) (恒等函数)
  • \(\sigma_k(n)=\displaystyle \sum_{d|n}d^k\)\(k\) 次因数和)
  • \(\varphi(n)=\displaystyle\sum_{i=1}^{n}[\gcd(i,n)=1]\) (欧拉函数)
  • \(\lambda(n)=(-1)^{\Omega (n)}\),其中 \(\Omega(n)\) 为唯一分解定理中所有素数的幂次之和(刘维尔函数)
  • \(\gamma(n)=(-1)^{\omega(n)}\),其中 \(\omega(n)\) 为质因子个数。
  • \(\mu(n)=\displaystyle\prod_{p\in\mathbb P,p\mid n}[p^2\not\mid n](-1)\) (莫比乌斯函数),此即为 \(\mathbf{I}(n)\) 在狄利克雷卷积下的逆元。用狄利克雷卷积逆的式子可以计算得到。

怎么筛出积性函数?

此内容仅适用于积性函数在素数幂处的点值可以被快速求出的情况。

我们知道 \(n\) 以内的质数个数 \(\pi(n)\sim \frac{n}{\ln n}\),所以只要我们能在 \(\mathcal O(\log n)\) 的时间内求出每个素数幂处的函数值,套用如下方法就可以 \(\mathcal O(n)\) 求出 \(1\sim n\) 内的所有函数值。

考虑欧拉筛,欧拉筛的原理是每个 \(i\) 会被其最小质因子筛去,那么我们不妨同时维护每个数的最小质因子,记为 \(\mathbf{lpf}(n)\),再记 \(\delta(n)\) 为最大的,能整除 \(n\) 的,\(\mathbf{lpf}(n)\) 的幂。那么 \(\frac{n}{\delta(n)}\perp \delta(n)\),从而有 \(f(n)=f(\frac{n}{\delta(n)})f(\delta(n))\),有时为了求出质数幂处的值,还要维护最小质因子的幂次。

经典莫比乌斯反演

由于 \(\mu(n)\)\(\mathbf {I}(n)\) 的狄利克雷卷积逆,所以:

\[ f*\mathbf I=g\Longleftrightarrow f=\mu*g \]

在右侧式子的左右同卷上 \(\mathbf I\) 即可得到左侧的式子。

这可以被用来解决 \(f(n)\) 难求而 \(g(n)=\displaystyle \sum_{d\mid n}f(n)\) 易求的情况。

事实上莫比乌斯反演还有倍数形式:

\[ g(x)=\sum_{x\mid y}f(y)\Longleftrightarrow f(x)=\sum_{x\mid y}\mu(\frac{y}{x})g(x) \]

其证明仍然可以参考铃悬的博客