参考文献
容斥原理和广义 Mobius 反演(一)容斥原理和集合上的莫比乌斯反演
容斥原理和广义 Mobius 反演(二)莫比乌斯反演的推广
容斥原理和广义 Mobius 反演(三)广义莫比乌斯反演
前置知识
狄利克雷卷积:Dirichlet 卷积和 Bell 级数
本文介绍容斥原理和广义的莫比乌斯反演,注意和拓扑学中的莫比乌斯变换和圆反演进行区分(虽然在更抽象的角度上它们也有联系,不过不在本文的讨论范围内)。阅读完本文,您将清楚莫比乌斯反演和容斥的关系,莫比乌斯反演和数论中的莫比乌斯反演是否一样,并学会一点基础的使用。
莫比乌斯变换能用来解决一些容斥相关的计数问题。本文只涉及理论,没有相关的题目,没有配图(懒得画),偏理论。
容斥原理
定理(容斥):S 为一个集合,Pi,i=1,2,⋯,m 是某个性质,Ai={x∈S:Pi(x)} 为满足第 i 个性质的元素构成的集合,则不满足全部性质的元素的个数为:
∣A1∩A2∩⋯∩Am∣=∣S∣−∑∣Ai∣+∑∣Ai∩Aj∣−∑∣Ai∩Aj∩Ak∣+⋯+∑(−1)m∣A1∩A2∩A3∩⋯∩Am∣
我们用韦恩图很好理解这一点。
证明:我们只需计算每个元素在右边式子中被计算的次数。
当 x∈/A1∩A2∩⋯∩Am 时,假设 x 满足其中的 k 个性质,则 x 被计算的次数为
(0k)−(1k)+(2k)−⋯+(−1)k(kk)=0
当 x∈A1∩A2∩⋯∩Am 时,x 只在 S 中被计数一次。证毕
推论:
∣A1∪A2∪⋯∪Am∣=∑∣Ai∣−∑∣Ai∩Aj∣+∑∣Ai∩Aj∩Ak∣−⋯+(−1)m+1∣A1∩A2∩A3∩⋯∩Am∣
证明:
∣A1∪A2∪⋯∪Am∣=∣S∣−∣A1∪A2∪⋯∪Am∣=∣S∣−∣A1∩A2∩⋯∩Am∣
将上述
∣A1∩A2∩⋯∩Am∣=∣S∣−∑∣Ai∣+∑∣Ai∩Aj∣−∑∣Ai∩Aj∩Ak∣+⋯+∑(−1)m∣A1∩A2∩A3∩⋯∩Am∣
代入即得。
例一:
计算 x1+x2+x3+x4=18 的整数解,其中
1≤x1≤5,−2≤x2≤4,0≤x3≤5,3≤x4≤9
令 y1=x1−1,y2=x2+2,y3=x3,y4=x4−3,使限制条件变为非负。
令 S 为满足方程的非负解(即不考虑约束),Ai 表示违反第 i 个约束的非负解,然后用容斥原理计算即可。
例二:
计算 1∼n 的排列中,i 不在第 i 个位置的排列数 Dn
解:令 S 为全排列数目,Ai 为 i 在第 i 个位置的排列。则任意 k 个 Ai 的交的元素个数为
∣Ai1∩Ai2∩⋯∩Aik∣=(n−k)!
由容斥原理
Dn=∣A1∩A2∩⋯∩An∣=∣S∣−∑∣Ai∣+⋯+(−1)m∣A1∩A2∩A3∩⋯∩Am∣=n!−(n−1)!+(n−2)!+⋯+(−1)n=n!(1−1!1+2!1+⋯+(−1)nn!1)
由上面结果可得到
e−1=n→∞limn!DnDn=(n−1)(Dn−1+Dn−1)Dn=nDn−1+(−1)n−2n!=(0n)Dn+(1n)Dn−1+⋯+(nn)D0
莫比乌斯反演
集合上的莫比乌斯反演是容斥原理的泛化 ,即容斥原理可以看成它的特例。
令 Xn=1,2,3,⋯,n,F:Xn→R 是一个 Xn 的幂集到实数的映射,定义 G:P(Xn)→R 为
G(K)=L⊆K∑F(L),∀K⊆Xn
则其逆运算为
F(K)=L⊆K∑(−1)∣K∣−∣L∣G(L),∀K⊆Xn
正变换称为 Z 变换,这个逆变换的过程为莫比乌斯反演。直接对所有子集计算这个式子,需要 O(3n),利用高维前缀和的技巧可以降为 O(2n)。
证明:
L⊆K∑(−1)∣K∣−∣L∣G(L)=L⊆K∑(−1)∣K∣−∣L∣T⊆L∑F(T)=T⊆K∑F(T)T⊆L⊆K∑(−1)∣K∣−∣L∣=T⊆K∑F(T)L⊆K−T∑(−1)∣L∣=F(K)
最后一步是因为当 K−T 非空时,偶数子集和奇数子集数目相同。Xn 可以替换成任意有限集。
容斥原理可以看作它的特例,设 A1,A2,⋯,An 为某个有限集 S 的子集 An+1=S,对于某个集合 K⊆Xn 定义 F(K) 为集合 ∩k∈/KAk−∪k/inKAk 中元素的个数,s∈S 被 F(L) 计数,当且仅当
∀i∈L,s∈/Ai∀i∈/L,s∈Ai
再定义
G(K)=L∈K∑F(L)
则,由于
a∈i∈/K⋂Ai⟺∃L⊆K,a∈i∈/L⋂Ai−i∈L⋃Ai
因此 G(K) 为
G(K)=i∈/K⋂Ai
由莫比乌斯反演可知
F(K)=L⊆K∑(−1)∣K∣−∣L∣G(L)
特别的,代入 K=Xn 得
F(Xn)=L⊆Xn∑(−1)n−∣L∣G(L)
由定义知 F(Xn)=∣⋂i∈/XnAi−⋃i∈X−nAi∣=∣S−⋃i∈XnAi∣=∣⋂i∈XnAi∣,因此
∣A1∪A2∪⋯∪An∣=L⊆Xn∑(−1)n−∣L∣i∈/L⋂Ai=J⊆Xn∑(−1)∣J∣i∈J⋂Ai
上式子中当 J=∅ 时,右边等于 ∣S∣,因此我们得到了容斥原理。
广义迪利克雷卷积和广义莫比乌斯函数
可以看成 Dirichlet 卷积和 Mobius 函数在偏序集上的推广。
可以将上面集合中莫比乌斯反演的 ⊆ 关系,替换成偏序关系。任给一个有限偏序集 (X,≤),令
F(X)={函数f:X×X→\C∣f(x,y)=0,∀x≤y}
对任意 f,g∈F(X),定义卷积
(f∗g)(x,y)=⎩⎨⎧x≤z≤y∑f(x,z)g(z,y),0,if x≤yotherwise
下面,这个 F(X) 在二元运算 ∗ 下为一个幺半群,即它满足结合律,以及存在单位元。过程和 Dirichlet 卷积差不多,所以具体推导从略。
有限是要保证求和式有定义,我们可以放宽一点限制,只要求任意 x≤y 满足 x≤z≤y 的 z 的个数有限即可,在本文中称其为线段有限(我不知道叫啥,集合论里面貌似叫这个线段)。比如自然数集就不是有限的,但是它是线段有限的。
容易验证卷积具有结合律 f∗(g∗h)=(f∗g)∗h,∀f,g,h∈F(x)
定义 Kronecker delta 函数
δ(x,y)=⎩⎨⎧f(y,y)1,−f(y,y)1x≤z≤y∑g(x,z)f(z,y),0,if x=yif x<yotherwise
可以得到
(g∗f)(x,y)=x≤z≤y∑g(x,z)f(x,y)=δ(x,y)
因此它是半群 (F(x),∗) 的左逆元,而半群的左逆元就是逆元,即 g 是 f 在卷积下的逆。
如果我们用整除关系定义为偏序关系,令 x=Z+,对于一个数论函数 f,我们定义
f(x,y)={f(y/x),0,if x≤yotherwise
则狄利克雷卷积,可以看成它的特例。
定义
ζ(x,y)={1,0,if x≤yotherwise
定义广义 Mobius 函数 μ 为它在卷积下的逆,μ∗ζ=δ,由此得
(μ∗ζ)(x,y)=x≤z≤y∑μ(x,z)μ(z,y)=δ(x,y),∀(x≤y)
将 ζ 定义代入,得
x≤z≤y∑μ(x,z)=ζ(x,y),∀x≤y
由这个等式,可以看到
μ(x,x)=1,∀x∈X
μ(x,y)=−x≤z≤y∑μ(x,y),∀x≤y
下面,我们举几个特例下 μ 的值
例一:
取偏序集为 (P(Xn),⊆),对 A⊆B⊆X,有
μ(A,B)=(−1)∣B∣−∣A∣
证明:因为 μ(A,A)=(−1)0,∀A⊆X,并且 ∀A⊊B⊆X,由归纳可知
μ(A,B)=−A⊆C⊆B∑μ(A,C)=−A⊆C⊆B∑(−1)∣C∣−∣A∣=−k=0∑p−1(−1)k(kp)=(−1)p=(−1)∣B∣−∣A∣
其中 p=∣B∣−∣A∣,最后两步是因为
0=(1−1)p=k=0∑p(−1)k(kp)⟹k=0∑p−1(−1)k(kp)=(−1)p+1(pp)
例二:
考虑 Xn={1,2,⋯,n} 上的自然全序,则
μ(k,l)=⎩⎨⎧1,−1,0,if l=kif l=k+1otherwise
证明:由
k≤j≤k+1∑μ(k,j)=0⟹μ(k,k+1)=−μ(k,k)=−1
然后可以归纳得出,当 l>k+1 时,
k≤j≤l∑μ(k,j)=0⟹μ(k,l)=0
例三:
考虑 Z+ 或者 Xn 以及上面的整除偏序关系,我们有
μ(l,k)={μ(1,k/l)=μ(k/l),0,if l∣kotherwise
其中,一元函数 μ 是数论中的莫比乌斯函数。
证明:μ(1,1)=μ(1)=1 再由
l∣k∑μ(1,l)=0andl∣k∑μ(l)=0
得 μ(1,k)=μ(k),∀k∈Z+
由
l∣p∣k∑μ(l,p)=0,μ(l,l)=1=μ(1)
归纳得
μ(l,k)=−l∣p∣k,p=k∑μ(l,p)=−l∣p∣k,p=k∑μ(1,p/l)=−t∣lk,t=lk∑μ(1,t)=μ(1,k/l)=μ(k/l)
关于两个偏序集的直积诱导的偏序集,
定理:
令为两个线段有限偏序集,定义 X×Y 上的偏序为
(x,y)≤(x′,y′)⟺x≤x′ and y≤y′
假设 μ1,μ2 分别是 (X,≤1),(Y,≤2) 上的莫比乌斯函数,μ 是 (X×Y,≤) 上的莫比乌斯函数,则
μ((x,y),(x′,y′))=μ1(x,x′)μ2(y,y′),∀(x,y),(x′,y′)∈X×Y
证明:因为 (x,y)≤(x′,y′)⟺x≤x′ or y≤y′,以及 (x,y)=(x′,y′)⟺x=x′ and y=y′,因此
μ((x,y),(x,y))=1=μ1(x,x)μ2(y,y)μ((x,y),(x′,y′))=0=μ1(x,x′)μ2(y,y′),∀(x,y),(x′,y′)∈X×Y
然后归纳,当 (x,y)<(x′,y′),
μ((x,y),(x′,y′))=−(x,y)≤(u,v)≤(x′,y′)∑μ((u,v),(x′,y′))=−(x,y)≤(u,v)≤(x′,y′)∑μ1(u,x′)μ2(v,y′)=−(x≤1u≤1x′∑μ1(u,x′))y≤2v≤2y′∑μ2(v,y′)+μ1(x,x′)μ2(y,y′)=0⋅0+μ1(x,x′)μ2(y,y′)
得证。
广义莫比乌斯反演
定理(广义莫比乌斯反演):
令 (X,≤) 是一个具有最小元(记为0)的线段有限偏序集。令 μ 是它的广义莫比乌斯函数,令 F:X→\C 是一个 X 上的函数,定义 G:X→\C 为
G(X)=z≤x∑F(z),∀x∈X
则我们由反演公式
F(x)=y≤x∑G(y)μ(y,x),∀x∈X
证明:直接证明
∀x∈X
y≤x∑G(y)μ(y,x)=y≤x∑z≤y∑F(z)μ(y,x)=y≤x∑μ(y,x)z∈X∑ζ(z,y)F(z)=z∈X∑y≤x∑ζ(z,y)μ(y,x)F(z)=z∈X∑(y≤x∑ζ(z,y)μ(y,x))F(z)=z∈X∑δ(z,x)F(z)=F(x)
不过从卷积的角度来看更加清晰,可以说一目了然。
定义
f(x,y)={F(y),0,if x=0otherwiseg(x,y)={G(y),0,if x=0otherwise
则
g(x,y)=z≤y∑f(z,y)=(f∗ζ)(x,y)
即 g=f∗ζ,两边再卷上 μ 得到(μ 和 ζ 互为逆)
f=g∗μ
故
F(x)=f(0,x)=(g∗μ)(0,x)=y≤x∑g(0,y)μ(y,x)=y≤x∑G(y)μ(y,x)
证毕
注意定理中的一个条件 (X,≤) 具有最小元(不是极小,而是最小)。这个最小元的限制,保证了求和式都是有限的,可以直接交换,而不必考虑收敛性问题。
我们同样可以将这个限制放宽,比如只需保证 ∑z≤xF(z),∑z≤xG(z) 是绝对收敛的。
推论(广义莫比乌斯变换反向形式):令 (X,≤) 是一个线段有限偏序集. 令 μ 是它的广义莫比乌斯函数,令 F:X→\C 是一个上的函数,定义 G:X→\C 为
G(x)=z≥x∑F(z),∀x∈X
则我们由反演公式
F(x)=y≥x∑G(y)μ(y,x),∀x∈X
其中满足 ∀x∈X,∑z≥xF(z),∑z≥xG(z) 绝对收敛。
证明:我们将偏序关系反过来,定义 x≤1y⟺≤x。 根据上面的讨论就得到了这个定理
推论
(数论中莫比乌斯变换的倍数形式):设 f 是一个数论函数,定义
F(n)=n∣N∑f(N)
其中 ∑n∣Nf(N),∑n∣NF(N),∀n 绝对收敛。则
f(n)=n∣N∑F(N)μ(nN)
广义莫比乌斯变换的例子
- 容斥原理可以看作是广义莫比乌斯变换的特例,只需让 X+P(Xn),以包含关系作为偏序关系。
- 数论中的莫比乌斯反演也是它的特例,只需取 X=Xn 以及整除关系作为偏序关系,设 F 为某个 X 上的实函数,
G(n)=d∣n∑F(d)
则有
F(n)=d∣n∑μ(d,n)G(d)=d∣n∑μ(n/d)G(d)
- 利用莫比乌斯反演,计算欧拉函数 φ(n),即 1∼n 中和 n 互素的元素个数
取偏序集同上,定义
G(n)=d∣n∑φ(d)=d∣n∑φ(n/d)
由于
d∣n∑φ(n/d)=d∣n∑#x∈Z+ and x≤n/d and gcd(x,n/d)=1=d∣n∑#x∈Z+ and dx≤n and gcd(dx,n)=d=d∣n∑#y∈Z+ and y≤n and gcd(y,n)=d=n
即 G(n)=n,利用 莫比乌斯反演,得到
φ(n)=d∣n∑μ(n/d)d=d∣n∑μ(d)n/d
令 n=p1a1p2a2⋯pkak,αi≥1,利用 μ 的积性性质,得
φ(n)=d∣n∑μ(d)n/d=d=p1β1p2β2⋯pkβk,βi≤1∑μ(d)n/d=β1≤1∑μ(p1β1)p1α1−β1β2≤1∑μ(p2β2)p2α2−β2⋯βk≤1∑μ(pkβk)pkαk−βk=i=1∏k(piαi−piαi−1)=ni=1∏k(1−pi1)
- 利用莫比乌斯变换解决计数问题。问题是 1∼k 组成的长度为 n 的可重复循环排列有多少种?可重复指的是 1∼k 可以重复使用,循环指的是它形成一个环,同一个环旋转得到的是同一个循环排列。或者这样描述,有 k 种颜色的珠子,每种颜色的珠子数量无限。问用它们能串成多少种长度为 n 的手链。
这个问题可以使用Polya计数解决,这里我们使用莫比乌斯反演。
我们将手链拆成串,按周期,对各种情况进行分类。那些周期不为本身的,由更小的周期串组成。令 f(m) 为长度为 m 且周期为 m 的子串,h(n) 为我们要计数的手链种类数,则
h(n)d∣n∑df(d)
因为每个长度为的串,刚好重复计算 d 次
令
g(m)=e∣m∑f(e)
则 g(m) 为所有长度为 m 的串,因此 g(m)=km,利用莫比乌斯反演,我们得到
f(m)=e∣m∑μ(m/e)g(e)=e∣m∑μ(m/e)ke
将 f 代回,得
h(n)=d∣n∑df(d)=d∣n∑d1e∣d∑μ(d/e)ke=e∣n∑m∣en∑me1μ(m)ke=e∣n∑r∣en∑nrμ((n/e)/r)ke=d∣n∑nφ(n/e)ke=n1e∣n∑φ(n/e)ke