作者是蒟蒻,如果有错误请批评指正,您有改进的建议也请提出/kel
0. 引入
这是数论 mobius 反演:
f(n)g(n)=d∣n∑g(d)=d∣n∑μ(dn)f(d)
这是快速 mobius 变换:
f(S)g(S)=T⊆S∑g(T)=T⊆S∑(−1)∣S∣−∣T∣f(T)
有没有发现这俩东西很像?
设
n=∏i=1kpiai (ai≥1)。当
∀ai=1 时,数论 mobius 反演就是 mobius 变换,指数上
bi=0/1 可以对应为集合上的属于关系,这与 mobius 变换等价。
我们可以从更高的视角分析这个问题,下面将介绍炫酷广义 mobius 反演魔术!
1. 广义 mobius 变换
定义 1.1 偏序集
称
(X,≤) 为偏序集,其中
≤ 表示偏序关系:
X≤={(x,y)∈X×X∣x≤y}
定义 1.2 广义狄利克雷卷积
-
定义函数
f 为映射
X≤→R,
R 是交换环(注意,按照定义,
f(x,y) 一定满足
x≤y)。
-
定义广义狄利克雷卷积为
(f∗g)(x,y)=x≤z≤y∑f(x,z)g(z,y)
ϵ(x,y)=[x=y]
1(x,y)=1
注意:广义 Dirichlet 卷积不满足交换律!
定义 1.2 广义 mobius 函数
μ∗1=1∗μ=ϵ
定理 1.3 mobius 函数的存在性与唯一性
可以证明,莫比乌斯函数存在且唯一。
证明
根据定义,对任意
(x,y)∈X≤:
(μ∗1)(x,y)=x≤z≤y∑μ(x,z)=ϵ(x,y)=[x=y](1.3.1)
-
若
x=y,则得
μ(x,y)=1
-
若
x<y,则
∑x≤z≤yμ(x,z)=0,移项即得
μ(x,y)=−x≤z<y∑μ(x,z)(1.3.2)
可见
μ 对于所有偏序集一定存在,且唯一。
式
(1.3.1) 和式
(1.3.2) 常用于推导
μ 的表达式,注意
(1.3.2) 的条件
x≤z<y 是左闭右开区间。
定理 1.4 广义 mobius 反演
设
X 有最小元为
u,则对任意映射
f,g:X→R,如果对任意
y∈X 都有
f(y)=u≤x≤y∑g(x)
g(y)=u≤x≤y∑f(x)μ(x,y)
证明:
对于任意
G(x,y) 满足
G(x,y)=(G∗μ∗1)(x,y)=x≤z≤w≤y∑G(x,z)μ(z,w)1(w,y)=x≤z≤w≤y∑G(x,z)μ(w,y)
令
G(u,y)=g(y),带入
g(y),得到
g(y)=u≤z≤w≤y∑g(z)μ(w,y)=w≤y∑μ(w,y)u≤z≤w∑g(z)=w≤y∑f(w)μ(w,y)
2. 例子
前缀和
取偏序集
(N+,≤),考察函数
f(n)=1≤i≤n∑g(i)
由
(1.3.1) 可得
∑i≤k≤jμ(i,j)=ϵ(i,j)=[i=j]。
-
若
i=j,有
μ(i,j)=[i=j]=1
-
若
j−i=1,则有
μ(i,j)+μ(i+1,j)=0⇒μ(i,j)=−1。
-
若
j−i=2,则有
μ(i,j)+μ(i+1,j)+μ(i+2,j)=0⇒μ(i,j)=0。
归纳得:
μ(i,j)=0 当
j−i≥2。
所以
g(n)=f(n)−f(n−1),哎这不是差分吗。
数论 mobius 反演
取偏序集
(N+,∣),其中
∣ 是整除,考察函数
f(n)=d∣n∑g(d)
由
(1.3.1),函数
μ 由方程
∑x∣z∣yμ(x,z)=ϵ(x,y)=[x=y] 给出。
-
若
x=y,
μ(x,y)=1
-
若
x∣y 且
x<y,
∑x∣z∣yμ(x,z)=0
观察:若
x∣y,则有
μ(x,y)=μ(1,xy)。
证明:
设局部偏序集:
LR={(x,z)×X∣z∈X,x∣z∣y,x≤z<y}={(1,z)×X∣z∈X,z∣xy,1≤z<xy}
根据
(1.3.2) 有
μ(x,y)μ(1,xy)=−(x,z)∈L∑μ(x,z)=−(1,z)∈R∑μ(1,z)
左侧
L 的元素
(x,z) 通过映射
(x,z)↦(1,xz),与右侧
R 的元素一一对应。
我们对
(x,y) 归纳证明,假设对于
(x′,y′)<(x,y) 命题成立,且
L,R 内的元素都满足小于
(x,y),根据归纳假设与上面推出的映射对应可得
(x,z)∈L∑μ(x,z)=(1,z)∈R∑μ(1,z)
而初始情况
(1,1) 成立,所以
μ(x,y)=μ(1,xy)。
因此
μ(x,y)=μ(1,xy),我们只需要找到
μ(1,n) 的通项公式即可,接下来的
μ(n) 表示
μ(1,n)。
由方程得到
∑d∣nμ(1,d)=ϵ(1,n)=[n=1](莫反的核心式子,其实是源于广义莫比乌斯函数的定义)。
-
k=0:
μ(1)=1
-
k=1:
μ(p)+μ(1)=0⇒μ(p)=−1
-
k=2:
μ(p2)+μ(p)+μ(1)=0⇒μ(p2)=0
归纳得:
μ(pk)=0 当
k≥2。
接下来证明函数积性:
假设对所有小于
nm 的正整数积性成立。考虑
nm,其中
gcd(n,m)=1。
μ(nm)=−d∣nmd<nm∑μ(d)=−d1∣nd2∣md1d2<nm∑μ(d1)μ(d2)=−d1∣nd1<n∑μ(d1)d2∣md2<m∑μ(d2)+μ(n)d2∣md2<m∑μ(d2)+μ(m)d1∣nd1<n∑μ(d1)=−μ(n)μ(m)+2μ(n)μ(m)=μ(n)μ(m)
综上,设
n=∏i=1kpiai (ai>1),我们得到了
μ(n) 的表达式(也就是一般语境下的“莫比乌斯函数”):
μ(n)=⎩⎨⎧10(−1)kn=1∃ai≥2otherwise
于是可得
g(n)=d∣n∑f(d)μ(d,n)=d∣n∑f(d)μ(dn)
快速莫比乌斯变换(FMT)
对于有限集
U,取偏序集
(U,⊆),考察函数
f(S)=T⊆S∑g(T)
由
(1.3.2) 有
μ(I,J)=−I⊆K⊂J∑μ(I,K)。
观察:若
∣I∣=∣I′∣,∣J∣=∣J′∣ 且
I⊆J,I′⊆J′,则
μ(I,J)=μ(I′,J′)。
证明思路:
与上题类似,设
LR={(I,K)∣I⊆K⊂J}={(I′,K)∣I′⊆K⊂J′}
由于
I,I′ 和
J,J′ 集合大小相同,任意一种双射
F:J→J′ 都可以使
L,R 通过
F 一一对应。(感性理解一下,将集合视作二进制数,标号一下就能对应上了)
然后归纳证明即可。
而
L,R 又可以通过映射
K↦K\I 同构于
[∅,J\I],所以其实
μ(I,J)=μ(∅,J\I),而
μ(∅,J\I) 又只与
∣J\I∣ 有关,所以下文使用
μ(∣J∣−∣I∣) 表示
μ(I,J)。
重新整理
μ(I,J)=μ(∣J∣−∣I∣)=−I⊆K⊂J∑μ(I,K)=−k=∣I∣∑∣J∣−1∣K∣=kI⊆K⊂J∑μ(∣K∣−∣I∣)
而
I⊆K⊂J 等价于
(I\I)⊆(K\I)⊂(J\I),
K 的个数是
(∣K\I∣∣J\I∣)=(∣K∣−∣I∣∣J∣−∣I∣),可以得到
μ(∣J∣−∣I∣)=−k=∣I∣∑∣J∣−1∣K∣=kI⊆K⊂J∑μ(∣K∣−∣I∣)=−k=∣I∣∑∣J∣−1(k−∣I∣∣J∣−∣I∣)μ(∣K∣−∣I∣)
带入
I=∅ 方便我们推导
μ(∣J∣)=−k=0∑∣J∣−1(k∣J∣)μ(k)
可归纳证明
μ(n)=(−1)n:
-
当
n=0,
μ(0)=1
-
当假设对所有
k<n,有
μ(k)=(−1)k。则:
μ(n)=−k=0∑n−1(kn)μ(k)=−k=0∑n−1(kn)(−1)k=−(0−(−1)n)=(−1)n
所以
g(S)=T⊆S∑f(T)μ(T,S)=T⊆S∑(−1)∣S∣−∣T∣f(T)
这是子集反演的推导,超集反演可以通过上面的式子变换一下符号得到。我们称集合
S 的补集为
U−S,超集反演的定义是
f(S)=S⊆T∑g(T)=T⊆(U−S)∑g(T)
我们定义
F(U−S)=f(S),套用子集反演的结论,得到
g(S)=T⊆S∑(−1)∣S∣−∣T∣F(T)=(U−T)⊆S∑(−1)∣S∣−∣U−T∣f(U−T)=S⊆T∑(−1)∣S∣−∣T∣f(T)
上式的
(−1)∣S∣−∣T∣ 大部分博客写做
(−1)∣T∣−∣S∣ 的,本质相同。
3. 总结
广义 mobius 反演可以做所有 DAG 前缀和反演状物的东西,提供了一种更一般的视角看这类反演问题,可以加深数学理解。同时定理
(1.1.3) 告知我们逆矩阵一定存在,但是如果 DAG 没有性质,求反演复杂度等价于求逆矩阵。
广义 mobius 反演也是一份强大的数学工具,出现在许多证明中。例如,它被大量用于迪尔沃斯定理的原始证明中,即有限偏序集合中,包含元素最多反链的元素数等于包含链数最少的链分解的链数。