【组合数学】 05 - 经典计数方法

1. 基本计数的母函数

  现在来用母函数来求解基本计数问题,母函数既可以完成自动计数,还能表示计数本身,像Stirling数这种就只能用母函数表示。自动计数适用于可以分步的计数问题,并且目标值是每步值之和,这与多项式的运算性质有关。

1.1 组合数和分划数

  直观上最符合这一特点的就是模型2,从n个可区别对象中选出m。限制第k个对象被取的次数在集合Mk中,它被选情况的母函数是iMkxi,所有元素被选择的情况可以借助母函数(1)自动计数,共选取m个元素的个数是xm的系数。特别地,不可重复组合数的母函数是(1+x)n,可重复组合数的母函数是1(1x)n(注意1+x+x2+=11x),满射的母函数是xn(1x)n

(1)k=0ckxk=i=1n(jMixj)

  对于模型4的分拆数,考虑到1λ12λ2mλm型分拆要满足上篇式(14),它也可以用母函数自动计数。对长度为k的分部使用xkλk,故长度为k的分部的母函数是1+xk+x2k+=11xk。所以p(m)的母函数便是式(2),由于p(m,k)等于最大分部为k的分拆数,故它的母函数是式(3)。

(2)n=0p(n)xn=i=1(1xi)1

(3)n=0p(n,k)xn=xki=1k(1xi)1

  值得一提的是,欧拉当初就是在研究分划数时发现母函数方法的。即使有式(2),p(m)的性质还是不清楚,我们注意到(2)的逆q(x)相对比较简单,值得讨论一下。q(x)有一个还算显然的组合意义,每一项系数的绝对值是分部互异的分划数,符号的意义则是分部数为奇数和偶数时分划数的差。利用这一组合意义辅助讨论(过程见教材),不难得到q(m)满足式(4)。继而可得到p(m)的递推关系式(5),它被称为欧拉公式

(4)q(m)={(1)k,ifm=12(3k2±k)0,ifm12(3k2±k)

(5)p(m)=k=1(1)k1(p(m3k2k2)+p(m3k2+k2))

   利用母函数证明:分部都为奇数的分划数等于分部互异的分划数。

1.2 指数型母函数

  对于模型1的排列数,简单的相加显然不再满足,考察上篇式(2),这就启发我们用xkk!代替xk(式(6))。对于数列cn,级数(6)被称为数列的指数型母函数,它对排列问题非常适用。同上面的分析,n个互异元素中选m个排列的母函数是式(7)。特别地,无重复排列数的母函数是(1+x)n,可重复排列数的母函数是enx(注意1+x+x22!+=ex),满射排列数的母函数则是(ex1)n

(6)k=0ckxkk!=c0+c1x1!+c2x22!+c3x33!

(7)k=0ckxkk!=i=1n(jMixjj!)

  最后趁热看一下模型3中的Stirling数,由于k!S(m,k)就是模型1中的满射,利用满射排列数的母函数容易知S(m,k)的指数型母函数(式(8)),利用指数型母函数也可以得到上篇式(26)。为了得到s(m,k)的指数型母函数gk(x),从上篇式(27)右得到启发,先计算gk(x)的母函数得到(1+x)y(过程略,二层母函数使用y),展开y的幂级数便得到s(m,k)的指数型母函数(9)。有了指数型母函数,Stirling数的性质就可以通过母函数研究,比如对母函数求导能得到递推关系式(10)(11)。

(8)m=0S(m,k)xmm!=1k!(ex1)k

(9)m=0s(m,k)xmm!=1k!(ln(1x))k

(10)S(m,k)=i=k1m1(m1i)S(i,k1)

(11)s(m,k)=i=k1m1(1)mi1(m1)mi1s(i,k1)

   求每个元素取到偶数个的排列数。

2. Pólya计数定理

2.1 引言和环状字

  基本计数问题中只涉及了两个最极端的拓扑结构,但在阐述的过程中,我们一直强调了同构类的思想。这里将推广这个思想,并将其用到更多的拓扑结构中。所谓同构,就是将拓扑结构中的元素置换,元素间的关系和置换后一致,它的代数意义就是我们熟悉的(a,b)=(f(a),g(a))。我们这里就不再说元素可区分、不可区分了,每个元素单独看都无差别,它的差异性完全由其在拓扑结构中的位置决定。

  比如图中的环状拓扑,直觉上说每个元素是“不可区分”的,但它们却不能随便置换。当把a置换到a时,为了保持a,b的关系,b只能置换到b,所以这个拓扑中的同构就只能是整个图的旋转。再来看另一个环状拓扑,它除了旋转之外,延虚线的翻转也是同构置换。最后的立方体,其中包括更多同构置换,它们都与我们的直觉对应,就是变动后仍与以前一样。为了简单起见,以下我们只讨论原像是复杂拓扑,而像是可区分集的问题。它的等价模型就是给拓扑结构的元素染色,这时的同构当然还要求元素被置换到同样颜色的元素。

  如果原像是左图的m阶有向环形,用n种颜色为其染色(或写入n种字母),结果被称为m环状字,同构环状字的个数记作Cn(m)。先将环形固定并对其染色,将环状字进行旋转,得到的不同染色方案便是该染色同构的个数。如果颜色出现的最小周期为d,易知共可以得到d个不同的染色,则有nm=d|mdM(d),其中M(d)是最小周期为d染色数(同构意义下)。利用反演公式可以得到mM(m)=d|mμ(md)nd,从而有环状字的计数公式(12)。

(12)Cn(m)=d|md|dμ(dd)ndd

2.2 Pólya计数定理

  现在对问题做一般性的讨论,先假设原像是可区分的,在其上进行染色,得到了染色方案集X。还有对原像拓扑(不含颜色)进行同构置换的变换集G,对任意gG,它都是一个变换g:XX。当对x1,x2X,当存在gG使得g(x1)=x2时,称x1,x2是等价的,而我们的问题就是求等价类的个数。

  容易证明对每个拓扑结构,其所有的同构置换在复合运算下是封闭的,从而构成一个群。又由于它是置换群的子集,故也称对称群GX的变换满足条件(13),该变换是GX上的“作用”,你需要先回顾一下“群的作用”相关知识。从两个维度分别讨论g(x)=x,可以得到等价类的个数N(G)满足式(14)的Burnside定理,其中Fg表示满足g(x)=xx的个数。如果对每个xX加权w(x),并使得同一等价类中的元素权值相同,则有Burnside定理的加权版(式(15)),其中xk是第k的等价类的代表元。

(13)(g1g2)(x)=g1(g2(x));e(x)=x

(14)N(G)=1|G|gG|Fg|

(15)k=1N(G)w(xk)=1|G|gG(xFgw(x))

  在染色问题中,我们比较关心一个染色方案使用的颜色组合,为了体现这个信息,给每个颜色赋上权值yi。而一个染色方案的权值则是y1k1y2k2ynkn,其中ki是颜色i出现的次数,且有k1+k2++kn=m。式(15)包含了所有染色方案(同构意义下)的权值,其中我们可以得到每种颜色组合k1,k2,,kn下染色方案的个数。当然式(15)的计算是通过右边的式子得到的,右边聚焦于每一个置换g本身的性质,使得问题只与拓扑结构有关。

  我们知道每个置换g其实是一些轮换的组合,比较显然(也很关键),g(x)=x的充要条件是同一轮换中的颜色相同。这里借用母函数的思想来计算Fg的权重,对长度为k的轮换,所有可能的权重之和是y1k+y2k++ynk。从而对1λ12λ2mλm型置换g的,Fg的权重如式(16)。为了表述方便,把式(17)称为G轮换指标(cycle index),显然当δk=y1k+y2k++ynk时便得到权重的完整表达式,它也被称为式样清单。特别地,取y1=y2==yn=1(即δ1=δ2==δm=n),便得到所有式样的个数(染色数)PG(n,,n),这些结论就是波利亚(Pálya)计数定理

(16)w(Fg)=k=1n(y1k+y2k++ynk)λk

(17)PG(σ1,,σm)=1|G|gGσ1λ1(g)σmλm(g)

2.3 典型例子

  波利亚定理采用了类似母函数的思想,能够准确地完成自动计数,但结论并没有给出最终计数值,所以它更多的在于其理论价值。下面以图中三种拓扑结构为例,阐述波利亚定理的应用,而问题的关键其实就是式(17)的计算。

  首先是有向环,显然它的对称子群是一个m循环群Cm={g,g2,,gm=e},其中g是单步旋转。容易知道,gk(k,m)m(k,m)阶轮换之积,其中(k,m)是最大公约数的记号。反过来考虑,对任意d|m,有φ(md)gk的轮换指标是σm/dd。所以其轮换指标是式(18),进而得到环状字的个数式(19),它和式(12)其实是等价的(φ(m)=d|mμ(d)md)。

(18)PCm=1md|mφ(md)σm/dd=1md|mφ(d)σdm/d

(19)Cn(m)=1md|mφ(d)nmd

  再来看无向环,一个典型问题就是用不同颜色的珍珠能串成多少个不同的项链。它和有向环不同的是还可以进行翻转,它的对称子群Dm={g,g2,,gm=e,ag,ag2,,agm=a}被称为二面体群。其中后m个是翻转变换,当m是奇数时是n12个对换,当n为偶数时,一半是n2个对换,一半是n22个对换,翻转的轮换指标如式(20)。

(20)k=1mw(agk)={12x1x2m12,if m is odd14(x2m2+x12x2m22),if m is even

  最后来看立方体,立方体的对称群被称为立方体的旋转群,除了单位元外,还有以下三类旋转:(1)3*3=9个以对面中心为轴的旋转;(2)2*4=8个以过对顶点直线为轴的旋转;(4)1*6个以过对边中点直线为轴的旋转。这些变换可以分别作用在顶点、边和面上,其对应的轮换指标分别为如下三式所示。

(21)P0=124(x18+9x24+6x42+8x12x32)

(22)P1=124(x112+3x26+6x42+8x34+6x12x25)

(23)P2=124(x16+3x12x22+6x14x4+6x23+8x32)

   讨论n种颜色串成的项链种数,包括规定颜色数量的情况;

   讨论n种颜色涂色立方体点、边、面的种数,包括规定颜色数量的情况。

posted on   卞爱华  阅读(1699)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

点击右上角即可分享
微信分享提示