组合数学_第二章

组合数学系列


前言

该系列主要结合作者所学编写而成,如有错误,请大家多多指正。

本章主要讲讲母函数和递归。


第二章 母函数与递归关系

2.1、母函数理论引言

  • 母函数就像一根晒衣绳,我们把需要得到的一列数挂在它上面。
  • 假定我们的问题的解是一列数: a 0 , a 1 , a 2 , . . . , a n , , , a_0,a_1,a_2,...,a_n,,, a0,a1,a2,...,an,,,。我们想知道这个数列是什么,我们期望得到怎样的答案?
  • 当然,最好的答案就是关于 a n a_n an的一个简单的公式,比如诸如 a n = n 2 + 3 a_n=n^2+3 an=n2+3之类的表达式,即通项公式
  • 但是, 如果一个未知数列没有简单公式, 或者即便存在, 但是很复杂, 很不容易得到, 我们也不知道, 该怎么办?
  • 如果我们还希望研究这个数列, 讨论它的性质, 该如何下手?
  • 举一个极端的例子,假定这个数列是 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , . . . 2,3,5,7,11,13,17,19,23,... 2,3,5,7,11,13,17,19,23,...,此处 a n a_n an是第 n n n个素数。这样的情况,期望任何简单的公式都是不合理的。
  • 母函数把数列的所有成员用一种非常巧妙的方法联系在一起,虽然这样做并不一定能得到数列的简单公式,可是也许能够给出一个幂级数和的简单公式,展开这个和函数,所得到的幂级数的系数就是我们所要找的数列
  • 比如后面我们将会学习到的Fibonacci数列,它满足一个递归关系: F n + 1 = F n + F n − 1 ( n ⩾ 2 ; F 1 = F 2 = 1 ) F_{n+1}=F_n+F_{n-1}(n\geqslant2;F_1=F_2=1) Fn+1=Fn+Fn1(n2;F1=F2=1)
  • 虽然这个数列也有一个准确的公式,也不算太复杂,但是我们将以它作为例子,说明用母函数的思想方法是如何回答这个问题的,应该是有意义的。
  • 这个回答就是: F n F_n Fn是函数 1 1 − x − x 2 \frac{1}{1-x-x^2} 1xx21关于原点的幂级数展开式中 x n x^n xn的系数。
  • 也许你会承认这是一种答案,但是不欣赏这个答案,因为我们没有明显的公式。
  • 但实际上,这是个相当优美的答案,用这样的结果,我们可以对整个数列做我们想做的许多事情。
  • 母函数能帮助我们做的事情:
    • 找准确公式
    • 找递归关系
    • 证明恒等式
    • 求平均值
    • 求渐近公式
    • 证明单峰性质

2.2、母函数概念及运算

2.2.1、母函数概念

  • 设有a,b,c三个不同的球,从中选取一个,或选a,或选b,或选c,把这些可能的选取形象地表示为 a + b + c a+b+c a+b+c
  • 类似地,从中选取两个,或选a和b,或选a和c,或选b和c,可形象地表示为 a b + a c + b c ab+ac+bc ab+ac+bc,同样,从中选取三个,只有一种方法,也可形象地表示为 a b c abc abc
  • 从多项式 ( 1 + a x ) ( 1 + b x ) ( 1 + c x ) = 1 + ( a + b + c ) x + ( a b + a c + b c ) x 2 + ( a b c ) x 3 (2.1) \tag{2.1} (1+ax)(1+bx)(1+cx)=1+(a+b+c)x+(ab+ac+bc)x^2+(abc)x^3 (1+ax)(1+bx)(1+cx)=1+(a+b+c)x+(ab+ac+bc)x2+(abc)x3(2.1)中发现,所有这些可能的选取方式正好是x幂的系数,其中 x i x^i xi的系数是从三个球中选取i个的方法之形象表示。
  • 因子 ( 1 + a x ) (1+ax) (1+ax)形象地指出,对球a,有两种选取方法:不选a,或选a,因子 ( 1 + a x ) (1+ax) (1+ax)中的1表示不选a,而x的系数a表示选a。
  • 既然在上述多项式中, x i x^i xi的系数表明选取i个球的方法,那么 ( 1 + a x ) ( 1 + b x ) ( 1 + c x ) (1+ax)(1+bx)(1+cx) (1+ax)(1+bx)(1+cx)所表明的是:对a,b,c三球,选取的方法是,“选a或不选a”和“选b或不选b”以及“选c或不选c”。
  • 多项式中x的幂次表示选取球的个数,而其相应系数表示一切可能的选取方法
  • 如果我们只关心不同组合方案的数目,不关心各种方案的罗列,可以在 ( 2.1 ) (2.1) (2.1)式中令a=b=c=1,则得到
  • ( 1 + x ) 3 = C ( 3 , 0 ) + C ( 3 , 1 ) x + C ( 3 , 2 ) x 2 + C ( 3 , 3 ) x 3 = 1 + 3 x + 3 x 2 + x 3 (2.2) \tag{2.2} (1+x)^3=C(3,0)+C(3,1)x+C(3,2)x^2+C(3,3)x^3=1+3x+3x^2+x^3 (1+x)3=C(3,0)+C(3,1)x+C(3,2)x2+C(3,3)x3=1+3x+3x2+x3(2.2)
  • 总方案数 N = C ( 3 , 0 ) + C ( 3 , 1 ) + C ( 3 , 2 ) + C ( 3 , 3 ) = 1 + 3 + 3 + 1 = 8 N=C(3,0)+C(3,1)+C(3,2)+C(3,3)=1+3+3+1=8 N=C(3,0)+C(3,1)+C(3,2)+C(3,3)=1+3+3+1=8
  • ( 2 , 2 ) (2,2) (2,2)就是一个关于形式变量x的幂函数,这个幂函数中不同幂次的系数都是一个组合数。
  • 这可以推广到任意n个不同球所有可能组合的方案数情况。这其实就是我们大家熟悉的二项式系数。不过现在我们是用形式级数的观点来看问题。
  • 利用这种形式级数不仅仅是一种不同的表达形式,还非常有用。
  • 下面熟悉的公式可以用这种方法证明。
  • 通过比较 ( 1 + x ) m ( 1 + x ) m + n (1+x)^m(1+x)^{m+n} (1+x)m(1+x)m+n两边 x r x^r xr项的系数可以得到: C ( m + n , r ) = C ( m , 0 ) C ( n , r ) + C ( m , 1 ) C ( n , r − 1 ) + . . . + C ( m , r ) C ( n , 0 ) C(m+n,r)=C(m,0)C(n,r)+C(m,1)C(n,r-1)+...+C(m,r)C(n,0) C(m+n,r)=C(m,0)C(n,r)+C(m,1)C(n,r1)+...+C(m,r)C(n,0)
  • 通过在 ( 1 + x ) n (1+x)^n (1+x)n中令x=1可以得到: C ( n , 0 ) + C ( n , 1 ) + . . . + C ( n , n ) = 2 n C(n,0)+C(n,1)+...+C(n,n)=2^n C(n,0)+C(n,1)+...+C(n,n)=2n
  • 通过对 ( 1 + x ) n = C ( n , 0 ) + C ( n , 1 ) x + . . . + C ( n , n ) x n (1+x)^n=C(n,0)+C(n,1)x+...+C(n,n)x^n (1+x)n=C(n,0)+C(n,1)x+...+C(n,n)xn两边对x求导,然后令x=1就得到 C ( n , 1 ) + 2 C ( n , 2 ) + . . . + n C ( n , n ) = n 2 n − 1 C(n,1)+2C(n,2)+...+nC(n,n)=n2^{n-1} C(n,1)+2C(n,2)+...+nC(n,n)=n2n1
  • 说明这种函数表达式可以帮助我们得到它们系数中所反映出来的组合数之间的关系.
  • 许多组合恒等式都可以用这种方法来证明.
  • 引入母函数的概念绝对不是为这种简单的目的。母函数还有很多更深刻的应用,特别是可以用来解递归关系。这一点后面我们会体会到。

2.2.2、母函数定义

【定义2.1】利用给定序列 a 0 , a 1 , a 2 , . . . a_0,a_1,a_2,... a0,a1,a2,...所构造的函数 F ( x ) = a 0 + a 1 x + a 2 x 2 + . . . F(x)=a_0+{a_1}x+{a_2}x^2+... F(x)=a0+a1x+a2x2+...称为序列 a 0 , a 1 , a 2 , . . . a_0,a_1,a_2,... a0,a1,a2,...的母函数。

比如: ( 1 + x ) n (1+x)^n (1+x)n C ( n , 0 ) , C ( n , 1 ) , . . . , C ( n , n ) C(n,0),C(n,1),...,C(n,n) C(n,0),C(n,1),...,C(n,n)的母函数。
母函数定义中的级数是形式幂级数,不需要关心其收敛性,x只是一个形式变量
有限序列 a 0 , a 1 , . . . , a n a_0,a_1,...,a_n a0,a1,...,an也可以定义它的母函数。(后面添加0)


2.2.3、母函数的运算

设序列 { a i } \{a_i\} {ai}的母函数 A ( x ) = Σ a i x i A(x)=\Sigma {a_ix^i} A(x)=Σaixi { b i } \{b_i\} {bi}的母函数为 B ( x ) = Σ b i x i B(x)=\Sigma {b_ix^i} B(x)=Σbixi。运算定义如下:

  1. 相等 A ( x ) = B ( x ) ⇔ { a i } = { b i } ⇔ a i = b i , i = 1 , 2 , . . . A(x)=B(x)\Leftrightarrow\{a_i\}=\{b_i\}\Leftrightarrow{a_i=b_i},i=1,2,... A(x)=B(x){ai}={bi}ai=bi,i=1,2,...
  2. 相加 A ( x ) + B ( x ) = Σ ( a i + b i ) x i A(x)+B(x)=\Sigma(a_i+b_i)x^i A(x)+B(x)=Σ(ai+bi)xi
  3. 相减 A ( x ) − B ( x ) = Σ ( a i − b i ) x i A(x)-B(x)=\Sigma(a_i-b_i)x^i A(x)B(x)=Σ(aibi)xi
  4. 数乘 c A ( x ) = Σ ( c a i ) x i cA(x)=\Sigma(ca_i)x^i cA(x)=Σ(cai)xi
  5. 相乘 c 0 = a 0 b 0 , c 1 = a 0 b 1 + a 1 b 0 , c r = a 0 b r + a 1 b r − 1 + . . . + a r b 0 , . . . c_0=a_0b_0,c_1=a_0b_1+a_1b_0,c_r=a_0b_r+a_1b_{r-1}+...+a_rb_0,... c0=a0b0,c1=a0b1+a1b0,cr=a0br+a1br1+...+arb0,...
  6. :如果 A ( x ) B ( x ) = 1 A(x)B(x)=1 A(x)B(x)=1,则称 B ( x ) B(x) B(x) A ( x ) A(x) A(x)的逆,记为 B ( x ) = A − 1 ( x ) = 1 A ( x ) B(x)=A^{-1}(x)=\frac{1}{A(x)} B(x)=A1(x)=A(x)1。(显然二者互为逆)

2.2.4、常用公式

  • ( 1 + x ) n = C ( n , 0 ) + C ( n , 1 ) x + C ( n , 2 ) x 2 + . . . + C ( n , i ) x i + . . . + C ( n , n ) x n (1+x)^n=C(n,0)+C(n,1)x+C(n,2)x^2+...+C(n,i)x^i+...+C(n,n)x^n (1+x)n=C(n,0)+C(n,1)x+C(n,2)x2+...+C(n,i)xi+...+C(n,n)xn
  • ( 1 − x ) − n = ∑ k = 0 ∞ C ( n + k − 1 , k ) x k , − 1 < x < 1 (1-x)^{-n}=\displaystyle\sum_{k=0}^{\infin}C(n+k-1,k)x^k,-1<x<1 (1x)n=k=0C(n+k1,k)xk,1<x<1
  • ( 1 − x ) 1 2 = 1 − 1 2 x − 1 8 x 2 − 1 16 x 3 − 1 128 x 4 − . . . − ( 2 k − 3 ) ! ! ( 2 k ) ! ! x k − . . . , − 1 ⩽ x ⩽ 1 (1-x)^{\frac 1 2}=1-\frac{1}{2}x-\frac{1}{8}x^2-\frac{1}{16}x^3-\frac{1}{128}x^4-...-\frac{(2k-3)!!}{(2k)!!}x^k-...,-1\leqslant x\leqslant 1 (1x)21=121x81x2161x31281x4...(2k)!!(2k3)!!xk...,1x1
    双阶乘
    例
    例

2.2.5、用母函数方法解计数问题

为了求 ∣ A n ∣ = a n |A_n|=a_n An=an,分两步:

  • A n A_n An的组合意义,求出 a n a_n an的母函数 f ( x ) f(x) f(x)
  • 母函数 f ( x ) f(x) f(x)展开,求出 a n a_n an的表达式。

例1
x的幂为一个骰子的点数

例2
与例1类似,都是将x的幂作为某个物品的面值(骰子一面的点数,某种硬币的面值)。这道题,1代表不用这种面额的硬币。

例3
例4
例4和例3的区别在于,少了“1”,即例4中不能有空盒。


2.3、母函数与递归关系例题

【例】Hanoi塔问题:n个圆盘依其半径大小,从下面上套在柱A上,如图所示,每次只允许取一个转移到柱B或C上,要求大盘不能放在小盘上面。若要求把A上的n个盘转移到C柱上,请设计一种方法,并估计要移动几个盘次,现在只有A,B,C三根柱子可供使用。
Hanoi
Hanoi塔是个经典问题,我们要先设计算法,进而估计算法的计算复杂性,这里就是移动的总次数

  • 算法设计:
    • n=2时,圆盘1从A套在B上;把圆盘2从A转移到C上;把圆盘1从B上转移到C上。完毕。
    • n=3时,把圆盘1从A转移到C上;把圆盘2从A转移到B上;把圆盘1从C上转移到B上;把圆盘3从A套在C上;把圆盘1从B再转移到A上;把圆盘2从B转移到C上,把圆盘1从A套在C上。完毕。
    • 假定n-1个盘子的转移算法已经确定。
    • 对n个圆盘问题,先把上面的圆盘1,2,…, n-1转移到B上,再把最后一个盘子转移到C上,然后把B上的n-1个圆盘转移到柱C上。 转移完毕。
    • 这运用的是递归算法n=2时给出了算法;n=3时先利用n=2时的算法把圆盘1,2移B上;再把圆盘3转移到柱C上;再利用n=2时的算法把B上两个圆盘转移到柱C上。n=4,5,…以此类推。
  • 算法分析:
    • h n h_n hn表示n个圆盘所需要的转移次数。根据算法先把前面n-1个盘子转移到B上;然后把第n个盘子转移到C上;最后再一次将B上的n-1个盘子转到C上。
    • 算法可实现性可用归纳法得到。因n=2时对,假定n-1对,那么n自然也对。
    • 关于转移次数容易得到一个递归关系: h n = 2 h n − 1 + 1 , h 1 = 1 (2.3) \tag{2.3}{h_n=2h_{n-1}+1,h_1=1} hn=2hn1+1,h1=1(2.3)
      方法1
      方法2
      方法2
      方法2
      方法2
      方法2
  • 算法评价: h n h_n hn是要移动圆盘数n(规模)的指数函数,以n=60为例子。可以计算出 2 60 ≈ 1.15292 × 1 0 18 2^{60}\approx 1.15292\times 10^{18} 2601.15292×1018。这个数是一个什么概念? 假如你每秒钟移动一个盘, 按照上述算法, 你移动60个盘的时间是:公式
    这就是所谓的“指数爆炸”现象。一般称复杂性为规模n的指数函数的算法为“坏算法”。好算法是指多项式算法或者线性算法

例
例

例
例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


结束

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《组合数学引论 第二版》的课后答案文件是一个pdf文件,内容包含了该教材中各章节课后习题的答案。该文件可以作为学生自主学习的辅助资料,帮助学生检验自己对课本知识的理解和掌握程度。 在该答案文件中,每个章节的答案都按照题目顺序进行了编排,方便学生快速查找和参考。每道习题的答案都给出了详细的解答过程和步骤,让学生能够深入理解题目的解题方法和思路。 该答案文件的内容通常由该教材的编写者或相关领域的专家撰写,确保答案的准确性和权威性。对于有些难度较高或比较抽象的题目,答案文件中可能会给出一些额外的解题技巧和提示,帮助学生更好地解决问题。 总之,课后答案pdf文件是组合数学引论第二版这本教材的附带资料,提供了对应章节习题的解答,对学生的学习和复习起到了很大的帮助作用。学生可以通过对比自己的答案和标准答案,及时发现和纠正自己的错误,提高对知识的理解和掌握能力。 ### 回答2: 《组合数学引论》第二版课后答案的PDF文件,是一本供读者参考的学习辅助材料。它包含了课后习题的解答,帮助读者巩固和加深对书中内容的理解。通过对习题的解答,读者可以更加全面和深入地学习组合数学的相关知识。 这本答案集的主要内容是对每个习题的详细解答,包括解题思路、具体的计算过程和详细的推理步骤。同时,答案集还会提供一些解题技巧和方法,帮助读者更好地解决问题。通过对习题的解答,读者可以检验自己的学习成果,并及时纠正和改进自己的学习方法和思维方式。 对于正在学习组合数学的读者来说,这本答案集是一个非常有价值的学习资源。它可以帮助读者更加深入地理解和掌握组合数学的概念和方法,提高解题能力和思维能力。同时,通过对答案集的学习,读者还可以学习到一些解题的思维方法和技巧,提高自己的数学思维能力。 总的来说,组合数学引论第二版课后答案的PDF文件是一本非常有价值的学习资料,对于想要提高自己的组合数学水平的读者来说,是一个不可缺少的学习辅助工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禁筱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值