待解决问题:偏序集笛卡尔积的时候,为什么莫比乌斯函数可以直接乘起来? 已解决

摘抄 参考资料: 《组合数学》,机械工业出版社

前面讲了狄利克雷卷积和偏序函数,但都没有讲到莫比乌斯函数是怎么来的。
广义的莫比乌斯函数能在偏序集中定义出来。
哪天搞个构造莫比乌斯函数的题出来玩玩

前置知识: 偏序
一些定义:
⊂\subset 代表真子集,⊆\subseteq 代表子集
用[]括起来的表达式返回内部式子是否成立,成立为1,不成立为0
δ(x,y)\delta(x,y)表示单位元,即δ(x,y)=[x=y]\delta(x,y)=[x=y]

从具体的开始考虑。
现在返回容斥原理,这时候偏序的关系为子集关系。
现在有两个函数F(x),G(x)F(x),G(x)(x是集合),而且有着下面的这种关系:

G(x)=∑k⊆xF(k)G(x)=\sum_ {k\subseteq x} F(k)

现在需要通过G(x)G(x)求出F(x)F(x)(比如G(x)G(x)很好求)
现在我们假设有一个神奇的偏序函数μ(x,y)\mu(x,y)能够满足以下要求(待会再求解):

F(x)=∑k⊆xG(k)×μ(k,x)F(x)=\sum_ {k \subseteq x} G(k) \times \mu(k,x)

代入G(x)G(x)并化简式子。

F(x)=∑k⊆x(∑l⊆kF(l))×μ(k,x)F(x)=\sum_ {k \subseteq x} (\sum_ {l \subseteq k} F(l))\times \mu(k,x)

F(x)=∑k⊆x∑l⊆kF(l)×μ(k,x)F(x)=\sum_ {k \subseteq x} \sum_ {l \subseteq k} F(l)\times \mu(k,x)

F(x)=∑l⊆xF(l)∑l⊆k⊆xμ(k,x)F(x)=\sum_ {l \subseteq x} F(l) \sum_ {l \subseteq k \subseteq x}\mu(k,x)

在普通情况下,左边=右边时会有以下限制:

∑l⊆k⊆xμ(k,x)=[l==x]\sum_ {l \subseteq k \subseteq x}\mu(k,x)=[l==x]

这时候会发现μ\mu实际上时可以求出来的。
首先∀x,μ(x,x)=1\forall x,\mu(x,x)=1
对于某个xx,满足∣l∣=∣x∣−1)|l|=|x|-1)的集合ll,他由两个μ\mu加起来并且和为0,而μ(l,x)=1\mu(l,x)=1,得到另外一个μ(k,x)=−1\mu(k,x)=-1
对于满足∣l∣=∣x∣−2)|l|=|x|-2)的集合ll,因为kk在遍历l⊂k,∣k∣=∣x∣−1l\subset k,|k|=|x|-1时有两种情况被减了两次,必须加回一个1才能变回0,所以μ(l,x)=1\mu(l,x)=1
…
依次求下去发现μ(k,x)\mu(k,x)有一个规律:

μ(k,x)=(−1)∣x∣−∣k∣\mu(k,x)=(-1)^ {|x|-|k|}

这个就是子集版的莫比乌斯函数,人称容斥系数。


考虑把一开始G(x)=∑k⊆xF(k)G(x)=\sum_ {k \subseteq x}F(k)中的⊆\subseteq换成另外一种偏序关系,看看能不能定义出来。
(其实这个就是线性有序集的莫比乌斯函数啦)
换成≤\leq,得到以下式子:

G(x)=∑k≤xF(k)G(x)=\sum_ {k \leq x}F(k)

现在继续假设有这种μ\mu能够得到以下式子

F(x)=∑k≤xG(k)μ(k,x)F(x)=\sum_ {k \leq x}G(k)\mu(k,x)

按照刚才的套路,带回G(x)G(x)并化简

F(x)=∑k≤x(∑l≤kF(k))μ(k,x)F(x)=\sum_ {k \leq x} (\sum_ {l \leq k}F(k))\mu(k,x)

F(x)=∑l≤xF(l)∑l≤k≤xμ(k,x)F(x)=\sum_ {l \leq x} F(l)\sum_ {l \leq k \leq x}\mu(k,x)

同理∑l≤k≤xμ(k,x)=[l=x]\sum_ {l \leq k \leq x}\mu(k,x)=[l=x]
根据上面的推法得到μ(k,x)\mu(k,x)的值:
当k=xk=x时,μ(k,x)=1\mu(k,x)=1
当k+1=xk+1=x时,μ(k,x)=−1\mu(k,x)=-1
其他时候μ(k,x)=0\mu(k,x)=0
这个是小于等于(线性)版的莫比乌斯函数,人称差分。


实际上对于任意的抽象关系RR,只要存在以下的式子,就可以构造出莫比乌斯函数μ\mu,并根据这个从GG推回FF。

G(x)=∑kRxF(k)G(x)=\sum_ {kRx}F(k)

把偏序集中的每个元素想象成一个点,若xRyxRy,则xx向yy连一条边,形成一个DAG。
当μ(x,y)\mu(x,y)中的y确定时,对于某个能遍历到yy的点xx,设xx能遍历到的集合为zz,存在一个方程:

∑k∈zμ(k,y)=0\sum_ {k \in z} \mu(k,y)=0

当∀k∈z,μ(k,y)\forall k \in z,\mu(k,y)确定时,μ(x,y)\mu(x,y)总是有唯一解。
所以根据拓扑序一定能而且仅能构造出一组μ\mu。

本文到此结束,谢谢大家!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

别急着拿板砖啊,这的确是莫比乌斯反演,还讲了莫比乌斯函数的来源和构造方法……
国情不对
下面讲另一种理解与构造方式,这次会讲到平常用的数论版本。


这里定义两个偏序集(A,≤A)(B,≤B)(A,\leq_ A)(B, \leq_ B)的笛卡尔积为:

({(A1,B1),(A1,B2),⋯ ,(A1,B∣B∣),(A2,B1),⋯ ,(A∣A∣,B∣B∣)},≤Aand≤B)(\lbrace (A_ 1,B_ 1),(A_ 1,B_ 2),\cdots,(A_ 1,B_ {|B|}),(A_ 2,B_ 1),\cdots,(A_ {|A|},B_ {|B|}) \rbrace, \leq_ A and \leq_ B )

就是把A中元素和B中元素组成∣A∣×∣B∣|A| \times |B|个二元组,并将偏序定义为:
对于两个二元组,原来的AA元素满足≤A\leq_ A,原来的BB元素满足≤B\leq_ B时满足此二元组的偏序。

偏序集笛卡尔积起来,莫比乌斯函数是可以直接乘起来的:
(δ(a,b)\delta(a,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)\begin{aligned} &\sum_{(x_1,x_2)\leq(z_1,z_2)\leq(y_1,y_2)}\mu((z_1,y_1),(z_2,y_2))\\ =&\delta((x_1,x_2),(y_1,y_2))\\ =&\delta(x_1,y_1)\delta(x_2,y_2)\\ =&\left(\sum_{x_1\leq z_1\leq y_1}\mu(x_1,z_1)\right)\left(\sum_{x_2\leq z_2\leq y_2}\mu(x_2,z_2)\right)\\ =&\sum_{x_1\leq z_1\leq y_1,x_2\leq z_2\leq y_2}\mu(x_1,z_1)\mu(x_2,z_2)\\ =&\sum_{(x_1,x_2)\leq(z_1,z_2)\leq(y_1,y_2)}\mu(z_1,y_1)\mu(z_2,y_2)\\ \end{aligned}

可以扩展到多个偏序集一起笛卡尔积的情况。
事实上,很多莫比乌斯函数能被构造成多个线性有序集的笛卡尔基,所以可以考虑用笛卡尔积构造莫比乌斯函数。
(这里线性有序集其实是前面讲的≤\leq版的莫比乌斯。)

先考虑容斥的情况。
关于容斥的偏序集中的元素是集合。
设这些集合中出现的元素为ak(1≤k≤n)a_ k(1 \leq k \leq n)
现在把偏序集中的每一个集合想像成一个n维的向量,每一维用01表示该元素是否在这个集合中出现过,如:
{a2,a3,a5}\lbrace a_ 2,a_ 3,a_ 5 \rbrace写成[0,1,1,0,1][0,1,1,0,1]
用向量代替原来的集合。
这时候,可以想象成有n个线性有序集笛卡尔积起来构成了这个向量。
这些向量是独立的,根据乘法原理可以得到笛卡尔积起来后的μ\mu
现在有两个向量a,ba,b,求μ(a,b)\mu(a,b)。考虑第kk维:

  • 若ak>bka_ k>b_ k,则这一维μ\mu是0,使得μ(a,b)\mu(a,b)总会是0,对应集合a⊈ba \not \subseteq b的情况。
  • 若ak=bka_ k=b_ k,则这一维μ\mu是1,对乘积没有影响。
  • 若ak<bka_ k<b_ k,则这一维μ\mu是-1,对乘积有-1的贡献。

综上,μ(a,b)\mu(a,b)为0(a⊈b)(a \not \subseteq b)或-1的【属于b但不属于a的元素个数】次方。
即μ(a,b)=(−1)∣b∣−∣a∣\mu(a,b)=(-1)^ {|b|-|a|}(当a是b子集的时候),和流传世面的完全一样。


现在考虑数论情况。
一个数xx总是可以被表示成p1k1p2k2⋯p_ 1^ {k_ 1}p_ 2^ {k_ 2}\cdots(p是质数)的形式。
现在想象有一个无限维的向量,第i维的值表示xx质因数分解后第ii个质数的幂。
同样地,用向量代替偏序集里的元素,并考虑μ\mu。
现在有两个向量a,ba,b,求μ(a,b)\mu(a,b)。考虑第kk维:

  • 若ak>bka_ k>b_ k,则这一维μ\mu是0,使得μ(a,b)\mu(a,b)总会是0,对应元素a∤ba \not | b的情况。
  • 若ak=bka_ k=b_ k,则这一维μ\mu是1,对乘积没有影响。
  • 若ak=bk−1a_ k=b_ k-1,则这一维μ\mu是-1,对乘积有-1的贡献。
  • 若ak<bk−1a_ k<b_ k-1,则这一维μ\mu也是0。

会发现这里的关系都是相对关系,所以可以令一个新的向量c=b-a(在数值上看就是b/a),而且只要c某一维<0或>1,μ(a,b)\mu(a,b)立刻变零。
c上为0的维度是不影响的,为1的维度都会对答案有-1的贡献。

综上,μ(a,b)\mu(a,b)不为令当且仅当a∣ba|b且b/a中的每个质因子幂不超过1。
在上述条件下,μ(a,b)\mu(a,b)为-1的【c的质因子个数】次方。

发现许多μ(a,b)\mu(a,b)本质上是相同的,可以定义一个新的函数μ′\mu',使得μ(a,b)=μ′(ba)\mu(a,b)=\mu'(\frac ba)
这时的μ′\mu'就是平常说的莫比乌斯函数。