引言
在算法竞赛(ACM/ICPC, OI)和解析数论中,**狄利克雷卷积(Dirichlet Convolution)和莫比乌斯反演(Möbius Inversion)**是解决GCD(最大公约数)求和、复杂计数问题的两大核心利器。很多人初学时往往死记硬背公式,对其内在的代数结构缺乏直观的感受。
今天,这篇文章不仅会带你深入浅出地梳理狄利克雷卷积与莫比乌斯反演的基础知识,还会为你打开一扇全新的大门------从抽象代数(特别是偏序集的关联代数)的视角,重新审视这两个神奇的数学工具。你会发现,那些繁杂的数论公式,其实只是广阔代数世界中的一个特例。
一、 前置知识:数论函数与常见积性函数
在深入卷积之前,我们需要明确什么是数论函数 。
数论函数(Arithmetic function)是指定义域为正整数,值域为复数的函数。
在数论中,有几个出场率极高的基本数论函数:
- 单位函数 ϵ\epsilonϵ(元函数) :狄利克雷卷积的单位元。
ϵ(n)={1(n=1)0(n>1) \epsilon(n) = \begin{cases} 1 & (n=1) \\ 0 & (n > 1) \end{cases} ϵ(n)={10(n=1)(n>1) - 常数函数 111 :无论输入什么,输出都是 111。
1(n)=11(n) = 11(n)=1 - 恒等函数 ididid :输出等于输入。
id(n)=nid(n) = nid(n)=n - 欧拉函数 φ\varphiφ :φ(n)\varphi(n)φ(n) 表示小于等于 nnn 且与 nnn 互质的正整数的个数。
- 莫比乌斯函数 μ\muμ :
μ(n)={1(n=1)(−1)k(n=p1p2...pk,所有素因子指数均为1)0(n 含有平方因子) \mu(n) = \begin{cases} 1 & (n=1) \\ (-1)^k & (n = p_1 p_2 \dots p_k \text{,所有素因子指数均为1}) \\ 0 & (n \text{ 含有平方因子}) \end{cases} μ(n)=⎩ ⎨ ⎧1(−1)k0(n=1)(n=p1p2...pk,所有素因子指数均为1)(n 含有平方因子)
二、 狄利克雷卷积 (Dirichlet Convolution)
1. 定义
对于两个数论函数 fff 和 ggg,它们的狄利克雷卷积 记作 f∗gf * gf∗g,其结果也是一个数论函数,定义为:
(f∗g)(n)=∑d∣nf(d)g(nd) (f * g)(n) = \sum_{d|n} f(d)g\left(\frac{n}{d}\right) (f∗g)(n)=d∣n∑f(d)g(dn)
其中 d∣nd|nd∣n 表示 ddd 是 nnn 的约数。这等价于枚举 nnn 的所有因子对 (x,y)(x, y)(x,y) 满足 x⋅y=nx \cdot y = nx⋅y=n,计算 f(x)g(y)f(x)g(y)f(x)g(y) 的和。
2. 代数性质
集合与运算如果能构成良好的代数结构,就会拥有极好的性质。数论函数集合在狄利克雷卷积运算下,构成了一个交换环(Commutative Ring):
- 交换律 :f∗g=g∗ff * g = g * ff∗g=g∗f
- 结合律 :(f∗g)∗h=f∗(g∗h)(f * g) * h = f * (g * h)(f∗g)∗h=f∗(g∗h)
- 分配律 :f∗(g+h)=f∗g+f∗hf * (g + h) = f * g + f * hf∗(g+h)=f∗g+f∗h
- 存在单位元 :ϵ∗f=f∗ϵ=f\epsilon * f = f * \epsilon = fϵ∗f=f∗ϵ=f(任何函数与 ϵ\epsilonϵ 卷积还是它自己)
3. 核心恒等式
利用狄利克雷卷积,我们可以将几个基本数论函数紧密联系在一起。请务必记住以下两个神仙公式:
公式一:莫比乌斯函数与常数函数的卷积
μ∗1=ϵ \mu * 1 = \epsilon μ∗1=ϵ
展开即为著名的性质:∑d∣nμ(d)=[n=1]\sum_{d|n}\mu(d) = [n=1]∑d∣nμ(d)=[n=1]。这是莫比乌斯反演的核心基石。
公式二:欧拉函数与常数函数的卷积
φ∗1=id \varphi * 1 = id φ∗1=id
展开即:∑d∣nφ(d)=n\sum_{d|n}\varphi(d) = n∑d∣nφ(d)=n。
三、 莫比乌斯反演:卷积视角的降维打击
古典形式的定义
莫比乌斯反演定理指出,如果有两个数论函数 FFF 和 fff 满足:
F(n)=∑d∣nf(d) F(n) = \sum_{d|n} f(d) F(n)=d∣n∑f(d)
那么就可以反向推导出:
f(n)=∑d∣nμ(d)F(nd) f(n) = \sum_{d|n} \mu(d)F\left(\frac{n}{d}\right) f(n)=d∣n∑μ(d)F(dn)
狄利克雷卷积视角的极简证明
在没有学习卷积之前,证明上述定理需要复杂的求和符号变换。但如果有了狄利克雷卷积,证明过程堪称"降维打击"。
已知条件转化为卷积式:
F=f∗1F = f * 1F=f∗1
证明目标转化为卷积式:
f=F∗μf = F * \muf=F∗μ
证明过程:
F=f∗1F∗μ=(f∗1)∗μ(两边同时右乘 μ)F∗μ=f∗(1∗μ)(结合律)F∗μ=f∗ϵ(因为 1∗μ=ϵ)F∗μ=f(因为 ϵ 是单位元) \begin{aligned} F &= f * 1 \\ F * \mu &= (f * 1) * \mu \quad \text{(两边同时右乘 } \mu \text{)} \\ F * \mu &= f * (1 * \mu) \quad \text{(结合律)} \\ F * \mu &= f * \epsilon \quad \text{(因为 } 1 * \mu = \epsilon \text{)} \\ F * \mu &= f \quad \text{(因为 } \epsilon \text{ 是单位元)} \end{aligned} FF∗μF∗μF∗μF∗μ=f∗1=(f∗1)∗μ(两边同时右乘 μ)=f∗(1∗μ)(结合律)=f∗ϵ(因为 1∗μ=ϵ)=f(因为 ϵ 是单位元)
Q.E.D.(证毕)
四、 抽象代数中的偏序集关联代数
上面的代数证明已经足够优雅了,但我们还可以站得更高。为什么 μ\muμ 函数长这样?为什么求和条件是 d∣nd|nd∣n?这仅仅是巧合吗?
在抽象代数和组合数学中,有一个极其深刻的概念叫做偏序集的关联代数(Incidence Algebra of a Partially Ordered Set)。Gian-Carlo Rota 在 1964 年将其系统化,揭示了莫比乌斯反演的本质。
1. 偏序集与区间
考虑一个偏序集 (P,≤)(P, \le)(P,≤)。对于任意 x≤yx \le yx≤y,定义区间 [x,y]={z∈P∣x≤z≤y}[x, y] = \{z \in P \mid x \le z \le y\}[x,y]={z∈P∣x≤z≤y}。且假设该偏序集是局部有限的(即每个区间只包含有限个元素)。
2. 关联代数的卷积
我们定义 PPP 上的关联代数:包含所有定义在区间上的函数 α(x,y)\alpha(x, y)α(x,y)。
在这个代数系统中,定义一种"卷积"运算 ∗*∗:
(α∗β)(x,y)=∑x≤z≤yα(x,z)β(z,y) (\alpha * \beta)(x, y) = \sum_{x \le z \le y} \alpha(x, z)\beta(z, y) (α∗β)(x,y)=x≤z≤y∑α(x,z)β(z,y)
这里的单位元 δ(x,y)\delta(x, y)δ(x,y) 定义为:当 x=yx=yx=y 时为1,否则为0。
3. Zeta 函数与反演
在这个系统中,定义最基础的常量函数为 Zeta 函数 ζ\zetaζ :
ζ(x,y)=1(对于所有 x≤y) \zeta(x, y) = 1 \quad (\text{对于所有 } x \le y) ζ(x,y)=1(对于所有 x≤y)
Rota 定理指出,ζ\zetaζ 函数在关联代数中存在唯一的逆元,这个逆元就定义为广义莫比乌斯函数 μ\muμ !
即 μ∗ζ=δ\mu * \zeta = \deltaμ∗ζ=δ。
这就导致了广义莫比乌斯反演公式 :
g(y)=∑x≤yf(x) ⟺ f(y)=∑x≤yg(x)μ(x,y) g(y) = \sum_{x \le y} f(x) \iff f(y) = \sum_{x \le y} g(x)\mu(x, y) g(y)=x≤y∑f(x)⟺f(y)=x≤y∑g(x)μ(x,y)
4. 降维到数论:整除偏序集
现在,见证奇迹的时刻到了。
我们将偏序集 PPP 设定为正整数集 N+\mathbb{N}^+N+ 。
将偏序关系 ≤\le≤ 定义为整除关系 ∣|∣ 。即 x≤yx \le yx≤y 意味着 xxx 能整除 yyy (x∣yx|yx∣y)。
此时的区间 [x,y][x, y][x,y] 就对应着 yx\frac{y}{x}xy 的所有约数。
将这一套理论代入上述的广义公式:
- 卷积运算 变成了:(α∗β)(x,y)=∑x∣z∣yα(x,z)β(z,y)(\alpha * \beta)(x, y) = \sum_{x|z|y} \alpha(x, z)\beta(z, y)(α∗β)(x,y)=∑x∣z∣yα(x,z)β(z,y),只要固定 x=1x=1x=1,这就等价于标准的狄利克雷卷积!
- Zeta函数 ζ(1,n)=1\zeta(1, n) = 1ζ(1,n)=1,这就是我们数论中的常数函数 111。
- 广义莫比乌斯函数 μ(1,n)\mu(1, n)μ(1,n),就是由 μ∗ζ=δ\mu * \zeta = \deltaμ∗ζ=δ 推导出来的。我们将其解出来,正是那个包含 (−1)k(-1)^k(−1)k 和 000 的经典莫比乌斯函数 μ(n)\mu(n)μ(n)!
总结:
我们熟悉的狄利克雷卷积,仅仅是正整数集在"整除"这一偏序关系下构成的关联代数中的卷积运算 ;而数论中的莫比乌斯反演,只是 Gian-Carlo Rota 广义偏序集反演定理在"整除偏序集"上的一个特例而已!
结语
莫比乌斯反演牛福克拉斯!