待解决问题:偏序集笛卡尔积的时候,为什么莫比乌斯函数可以直接乘起来? 已解决
摘抄 参考资料: 《组合数学》,机械工业出版社
前面讲了狄利克雷卷积和偏序函数,但都没有讲到莫比乌斯函数是怎么来的。
广义的莫比乌斯函数能在偏序集中定义出来。
哪天搞个构造莫比乌斯函数的题出来玩玩
前置知识: 偏序
一些定义:
⊂ 代表真子集,⊆ 代表子集
用[]括起来的表达式返回内部式子是否成立,成立为1,不成立为0
δ(x,y)表示单位元,即δ(x,y)=[x=y]
从具体的开始考虑。
现在返回容斥原理,这时候偏序的关系为子集关系。
现在有两个函数F(x),G(x)(x是集合),而且有着下面的这种关系:
G(x)=k⊆x∑F(k)
现在需要通过G(x)求出F(x)(比如G(x)很好求)
现在我们假设有一个神奇的偏序函数μ(x,y)能够满足以下要求(待会再求解):
F(x)=k⊆x∑G(k)×μ(k,x)
代入G(x)并化简式子。
F(x)=k⊆x∑(l⊆k∑F(l))×μ(k,x)
F(x)=k⊆x∑l⊆k∑F(l)×μ(k,x)
F(x)=l⊆x∑F(l)l⊆k⊆x∑μ(k,x)
在普通情况下,左边=右边时会有以下限制:
l⊆k⊆x∑μ(k,x)=[l==x]
这时候会发现μ实际上时可以求出来的。
首先∀x,μ(x,x)=1
对于某个x,满足∣l∣=∣x∣−1)的集合l,他由两个μ加起来并且和为0,而μ(l,x)=1,得到另外一个μ(k,x)=−1
对于满足∣l∣=∣x∣−2)的集合l,因为k在遍历l⊂k,∣k∣=∣x∣−1时有两种情况被减了两次,必须加回一个1才能变回0,所以μ(l,x)=1
…
依次求下去发现μ(k,x)有一个规律:
μ(k,x)=(−1)∣x∣−∣k∣
这个就是子集版的莫比乌斯函数,人称容斥系数。
考虑把一开始G(x)=∑k⊆xF(k)中的⊆换成另外一种偏序关系,看看能不能定义出来。
(其实这个就是线性有序集的莫比乌斯函数啦)
换成≤,得到以下式子:
G(x)=k≤x∑F(k)
现在继续假设有这种μ能够得到以下式子
F(x)=k≤x∑G(k)μ(k,x)
按照刚才的套路,带回G(x)并化简
F(x)=k≤x∑(l≤k∑F(k))μ(k,x)
F(x)=l≤x∑F(l)l≤k≤x∑μ(k,x)
同理∑l≤k≤xμ(k,x)=[l=x]
根据上面的推法得到μ(k,x)的值:
当k=x时,μ(k,x)=1
当k+1=x时,μ(k,x)=−1
其他时候μ(k,x)=0
这个是小于等于(线性)版的莫比乌斯函数,人称差分。
实际上对于任意的抽象关系R,只要存在以下的式子,就可以构造出莫比乌斯函数μ,并根据这个从G推回F。
G(x)=kRx∑F(k)
把偏序集中的每个元素想象成一个点,若xRy,则x向y连一条边,形成一个DAG。
当μ(x,y)中的y确定时,对于某个能遍历到y的点x,设x能遍历到的集合为z,存在一个方程:
k∈z∑μ(k,y)=0
当∀k∈z,μ(k,y)确定时,μ(x,y)总是有唯一解。
所以根据拓扑序一定能而且仅能构造出一组μ。
本文到此结束,谢谢大家!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
别急着拿板砖啊,这的确是莫比乌斯反演,还讲了莫比乌斯函数的来源和构造方法……
国情不对
下面讲另一种理解与构造方式,这次会讲到平常用的数论版本。
这里定义两个偏序集(A,≤A)(B,≤B)的笛卡尔积为:
({(A1,B1),(A1,B2),⋯,(A1,B∣B∣),(A2,B1),⋯,(A∣A∣,B∣B∣)},≤Aand≤B)
就是把A中元素和B中元素组成∣A∣×∣B∣个二元组,并将偏序定义为:
对于两个二元组,原来的A元素满足≤A,原来的B元素满足≤B时满足此二元组的偏序。
偏序集笛卡尔积起来,莫比乌斯函数是可以直接乘起来的:
(δ(a,b)表示单位元[a=b])
=====(x1,x2)≤(z1,z2)≤(y1,y2)∑μ((z1,y1),(z2,y2))δ((x1,x2),(y1,y2))δ(x1,y1)δ(x2,y2)(x1≤z1≤y1∑μ(x1,z1))(x2≤z2≤y2∑μ(x2,z2))x1≤z1≤y1,x2≤z2≤y2∑μ(x1,z1)μ(x2,z2)(x1,x2)≤(z1,z2)≤(y1,y2)∑μ(z1,y1)μ(z2,y2)
可以扩展到多个偏序集一起笛卡尔积的情况。
事实上,很多莫比乌斯函数能被构造成多个线性有序集的笛卡尔基,所以可以考虑用笛卡尔积构造莫比乌斯函数。
(这里线性有序集其实是前面讲的≤版的莫比乌斯。)
先考虑容斥的情况。
关于容斥的偏序集中的元素是集合。
设这些集合中出现的元素为ak(1≤k≤n)
现在把偏序集中的每一个集合想像成一个n维的向量,每一维用01表示该元素是否在这个集合中出现过,如:
{a2,a3,a5}写成[0,1,1,0,1]
用向量代替原来的集合。
这时候,可以想象成有n个线性有序集笛卡尔积起来构成了这个向量。
这些向量是独立的,根据乘法原理可以得到笛卡尔积起来后的μ
现在有两个向量a,b,求μ(a,b)。考虑第k维:
- 若ak>bk,则这一维μ是0,使得μ(a,b)总会是0,对应集合a⊆b的情况。
- 若ak=bk,则这一维μ是1,对乘积没有影响。
- 若ak<bk,则这一维μ是-1,对乘积有-1的贡献。
综上,μ(a,b)为0(a⊆b)或-1的【属于b但不属于a的元素个数】次方。
即μ(a,b)=(−1)∣b∣−∣a∣(当a是b子集的时候),和流传世面的完全一样。
现在考虑数论情况。
一个数x总是可以被表示成p1k1p2k2⋯(p是质数)的形式。
现在想象有一个无限维的向量,第i维的值表示x质因数分解后第i个质数的幂。
同样地,用向量代替偏序集里的元素,并考虑μ。
现在有两个向量a,b,求μ(a,b)。考虑第k维:
- 若ak>bk,则这一维μ是0,使得μ(a,b)总会是0,对应元素a∣b的情况。
- 若ak=bk,则这一维μ是1,对乘积没有影响。
- 若ak=bk−1,则这一维μ是-1,对乘积有-1的贡献。
- 若ak<bk−1,则这一维μ也是0。
会发现这里的关系都是相对关系,所以可以令一个新的向量c=b-a(在数值上看就是b/a),而且只要c某一维<0或>1,μ(a,b)立刻变零。
c上为0的维度是不影响的,为1的维度都会对答案有-1的贡献。
综上,μ(a,b)不为令当且仅当a∣b且b/a中的每个质因子幂不超过1。
在上述条件下,μ(a,b)为-1的【c的质因子个数】次方。
发现许多μ(a,b)本质上是相同的,可以定义一个新的函数μ′,使得μ(a,b)=μ′(ab)
这时的μ′就是平常说的莫比乌斯函数。