第22章 递推关系与生成函数
排列与组合的生成函数与应用

排列与组合的生成函数与应用生成函数是组合数学中的一种重要工具,主要用于描述排列和组合问题中的序列生成规律,并在实际问题中具有广泛的应用。
本文将介绍排列与组合的生成函数的概念、性质以及在实际问题中的应用。
一、生成函数的概念与定义生成函数是一种形式幂级数,用于把序列的每个项与其对应的项的位置联系起来。
对于一个序列{an},其生成函数可以表示为:G(x) = a0 + a1x + a2x^2 + a3x^3 + ...其中,ai表示第i个项的系数,x表示变量。
生成函数的特点是将序列的每个项与其对应的项的位置组合在一起,从而可以对序列的各项进行运算和分析,解决排列与组合问题。
二、排列与组合问题的生成函数1. 排列问题排列是指从一组元素中挑选出一部分元素按照一定的顺序进行排列的方式。
对于n个元素的排列问题,可以使用生成函数来描述。
设P(n)表示n个元素的全排列数,那么P(x)的生成函数可以表示为:P(x) = 1 + x + x^2 / 2! + x^3 / 3! + ...其中,x^k / k!表示取k个元素进行排列的系数。
通过P(x)的展开式,可以获取不同长度的排列数,从而解决排列问题。
2. 组合问题组合是指从一组元素中挑选出一部分元素,而不考虑其排列顺序的方式。
对于n个元素中挑选r个元素的组合问题,可以使用生成函数来描述。
设C(n, r)表示从n个元素中挑选r个元素的组合数,那么C(x)的生成函数可以表示为:C(x) = 1 + C(1, 1)x + C(2, 1)x^2 + C(3, 1)x^3 + ...其中,C(k, 1)x^k表示从k个元素中挑选1个元素的系数。
通过C(x)的展开式,可以获取不同挑选元素个数的组合数,从而解决组合问题。
三、生成函数与应用举例生成函数在实际问题中有着广泛的应用,下面以几个典型的例子来说明生成函数的具体应用。
1. 斐波那契数列斐波那契数列是一个非常经典的排列问题,其定义为:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n ≥ 2)。
母函数(生成函数)

母函数(⽣成函数)介绍母函数是组合数学中相当重要的⼀个知识点,可以⽤来解决⼀些排列组合问题,还有所有的常系数线性齐次递推问题。
如果系数不是常数,需要根据具体情况进⾏处理。
具体的内容可以看组合数学相关书籍或者,由于⼤佬总是想当然地把别⼈当成⼤佬,⼀些内容对(像我这种)蒟蒻来说不是很友好,在这⾥讲⼀下母函数的基础。
(研究母函数时,钦定|x|<1),这样,由等⽐数列求和公式有:11−x=∑∞i=0x i=1+x+ (x)11−kx=∑∞i=0k i x i=1+kx+...+k∞x∞1.普通型母函数。
假设有⼀个数列a,那么它的母函数其实就是⼀个关于x的多项式,x n的系数为a n,对于已知通项的数列,其母函数可以直接写出来。
⽽对于未知的数列,主要分为两类:递推型和组合型。
递推型就是利⽤错位相消,举个栗⼦:a n=3a n−1+10a n−2,a0=1,a1=2移项,得a n−3a n−1−10a n−2=0,设a n的母函数为G(x)G(x)=a0+a1x+a2x2+a3x3...−3xG(x)=−3a0x+(−3)a1x2+(−3)a2x3...−10x2G(x)=−10a0x2+(−10)a1x3三⾏相加,可以发现等式右侧除了第⼀⾏的第1,2项和第⼆⾏的第1项外全消掉了。
所以我们可以得到(1−3x−10x2)G(x)=a0+a1x−3a0x=1−x,即G(x)=1−x1−3x−10x2,⽣成函数就求出来了,那如果我们还要求an的通项呢?对于这种东西,我们可以把他化成k1x−A+k2x−B这种形式,其中A和B由分母的因式分解唯⼀确定,然后k1,k2可由待定系数法解得。
然后对于kx−A,总可以化成k′∗11−Nx,就是k′∑∞i=0N i x i,找出x k的系数就是a n,如果母函数拆开成多个该类分式的话各部分相加就好。
具体计算就不算了。
PS:⼀部分⾮齐次线性递推其实也可以这样解,⽐如a n−3a n−1−10a n−2=f(n),按照上述⽅法错项后会剩下⼀个等⽐数列和前⼏项余项。
总结:生成函数(斐波那契通项公式推导)

总结:⽣成函数(斐波那契通项公式推导)⽣成函数总结前⾔形式幂级数先讲讲什么是幂级数叭幂级数是指级数的每⼀项均为与级数项序号n相对应的以常数倍的 (x−a) 的n(n∈N) 次⽅。
⽐如A(x)=∑i≥0a i(x−x0)i它与多项式不同的⼀点在于多项式只有有限项的系数是⾮零的。
接着讲形式幂级数其意思就是:对于我们⽣成的这个多项式来说,其中的变量x只是作为⼀个符号⽽已,只是⼀个形式,它的取值并不重要,我们关⼼的只是它所携带的信息⽽已。
好惨⼀变量……就⽐如在最简单的⽣成函数⽅案统计问题中,其指数就是我们要求的⽅案,⽽其系数就是答案。
后⾯讲⽣成函数的时候会细讲。
⽣成函数⽣成函数可以分为很多种,但是⽤的最⼴泛的还是普通⽣成函数和指数⽣成函数。
普通⽣成函数Ordinary Generating Function,OGF:普通⽣成函数。
定义为形式幂级数:F(x)=∑n≥0a n x n封闭形式每次计算都要写⼀长串的多项式或者写⼀个 ∑,太⿇烦了,有没有更好的⽅法?⾃然是有的,我们发现:对于序列<1,1,1,…>的普通⽣成函数F(x)=∑n≥0x n,有F(x)⋅x+1=F(x)解得F(x)=11−x,所以我们可以⽤这个来代替原来琐碎的 ∑并简化运算。
真是天⾐⽆缝⼜⼗分扯淡这种⽅法⽤的⾮常多,尤其是在求通项公式的时候,⽐如求斐波那契和卡特兰数的通项公式时就会⽤到。
⼆项式定理但是我们将⼀个多项式变成封闭形式之后就⽆法得到第n项的系数了啊。
但是没有关系,我们可以⽤⼆项式定理将其展开。
Generalized Binomial Theorem:⼴义⼆项式定理:(x+y)α=∞∑k=0αk xα−k y k ()() Processing math: 100%其中αk为⼴义⼆项式系数(其实就是实数域下的组合数)αk=αk_k !=α(α−1)…(α−k +1)k !,α∈R,k ∈Nαk_ 表⽰ α 的 k 次下降幂,即 α(α−1)…(α−k +1)。
离散数学课程标准

《离散数学》课程标准英文名称:Discrete Mathematics 适用专业:数学与应用数学学分数:4一、课程性质《离散数学》是研究离散量的结构及其相互关系的应用数学学科,是随着计算机科学的发展而逐步建立的,它形成于七十年代初期,是一门新兴的工具性学科。
《离散数学》是应用数学专业以及计算机专业的一门重要专业必修课。
二、课程理念1、课程所属学科分析离散与连续是现实世界中物质运动的对立统一的两个方面,离散数学与连续数学是描述、刻画和表达现实世界物质运动的两个重要工具。
计算机的高速发展与广泛应用,促进了信息数字化、符号化和离散化。
从目前的发展趋势来看,离散数学在现代应用科学中的作用已经超过了连续数学。
离散数学已成为计算机科学与技术的重要理论基础之一,在计算机科学与技术等领域有着广泛的应用。
2、课程授课对象分析离散数学课程是应计算机科学和技术发展的需要,综合了高等数学的多个分支而形成的。
其特点是以离散量为研究对象,内容丰富,涉及面较宽。
因此概念多、定理多、推理多,但它研究的内容均比较基础,难度不大。
本课程面对的是计算机科学与技术专业一年级的学生,。
通过本课程的学习,培养学生的抽象思维和严密的逻辑推理能力,为进一步学习专业课打好基础,并为学生今后处理离散信息,提高专业理论水平,从事计算机的实际工作提供必备的数学工具。
3、课程内容选择分析本课程研究离散型的量的结构及其相互间的关系,因而特别体现了计算机科学的离散性这一重要特征。
其内容极为广泛,不同的教材或专著在选材上通常会有较大的差异。
但都至少包含了以下四个方面内容:数理逻辑、集合论、代数系统、图论。
作为一门数学课,《离散数学》特别能体现数学的三大特性——严密的逻辑性、高度的抽象性以及广泛的应用性。
4、课程学习要求的分析在本课程的教学过程中,要坚持学生为主体、教师为主导、以人为本的教学理念,将研究性学习运用于教学中,课堂讲授、课堂讨论、课外扩展学习相结合,鼓励创新,充分体现素质教育、个性化教育等现代教育思想和观念,构建以学习者为中心,以学生实践性的自主活动为基础的动态、开放的教学过程。
第22章 递推关系与生成函数

解:
23
第22章 递推关系与生成函数
(3) 解: 注意到
1,2,3, (n 1),
f ( x) 1 2x 3x nx
2
n 1
1 1 x x 2 x3 x n 1 x
子集数为
f (n 2)
.由加法原理得:
f (n) f (n 1) f (n 2)
17
第22章 递推关系与生成函数
§22.2 生成函数
• 生成函数是可重复排列和组合问题中处理 特殊约束的一个方便工具.
18
第22章 递推关系与生成函数
生成函数
例:有红球两个,白球、黄球各一个,试 求有多少种不同的组合方案,假设两个红球没 有区别。
ak x
k k
0
(22.2)
称为(22.1)式的特征方程.
10
第22章 递推关系与生成函数
设 q1, q2 ,, qk 是(22.1)式的特征方程的根, n n ck qk (1)若 qi q j , i j ,则 H (n) c1 q1n c2 q2 是任意常数; 是递推关系(22.1)式的通解,其中 ci (i 1, 2,, k ) (2)若
将{1,2,3,, n} 的所有子集分为两部分,一部分为
{1,2,3,, n 1} 的所有子集, 另一部分是由
{1,2,3,, n 1} 的每一个子集加进元素
n 以后得到的子集.
第一部分的交替子集为 f (n 1) ,第二部分中的交替子集 正好同 {1,2,, n 2} 的交替子集是对应的.事实上,定义
生成函数的应用

生成函数的应用摘要生成函数方法是一种简单而又重要的方法,本文介绍了生成函数的定义,同时给出了生成函数在概率论、证明恒等式、求解递推关系及求递归数列的通项公式等方面的应用。
关键字:生成函数;递推关系;恒等式;生成函数应用一、 生成函数的定义生成函数又叫做母函数。
生成函数方法是离散数学的重要方法,是连接离散数学与连续数学的桥梁。
在组合数学中,生成函数的典型作用主要体现在组合计数方面,是解决组合计数问题的强有力工具之一,其基本思想为:为了获得一个序列{}k k 0a ≥的有关知识,我们引用一个幂级数来整体表示这个k 2k 012k 0x a x a a x a x G ∞===+++∑()序列,x G ()为序列{}k k 0a ≥的生成函数。
这样,一个序列和它的生成函数一一对应,我们可以通过对生成函数的运算和分析得到这个序列的很多性质。
18世纪,欧拉在研究正整数分拆时首先使用了母函数,19世纪初拉普拉斯在研究概率问题时得到进一步发展。
母函数的一种自然推广,导致概率论中引进强有力的工具—特征函数,它把随机变量的分布函数变换为它的特征函数,从而把对分布函数的研究转化为对对应的特征函数的研究,大大地推动了相互独立随机变量的和的极限理论的研究。
一、 生成函数的应用2.1 生成函数在概率论中的应用例:在做抽样调查时,采访的男士有教师,医生,律师等不同的q 个行业,女士也有不同的p 个行业,假设我们在每一行业中至多选取2位男士和至多选取1位女士,问有多少种不同的方法取k 个人的样本?解:要区分相同性别的人,当且仅当他们属于不同的范畴,现以选择k 个人的方法数量做生成函数。
在q 种范畴的每一个中,我们或者选择0,1,2位男士做样本,因此每个范畴给出2(x+x )1+项,另外选择0或1位女士,所以p 种范畴中的每一个给出(1+x)项。
所以,2q p (x)(x+x )(x)G =1+1+因此选择k 个人的方法数量是(x)G 中k x 的系数。
指数生成函数

22.5 指数生成函数定义 设{an}为序列,称xn Ge ( x ) = an n! n=0∑∞为{an}的指数生成函数. 例 1 给定正整数 m, an = P(m,n), {an}的指数生成函数为∞ ∞ ⎛m⎞ xn m! n Ge ( x ) = ∑ P ( m , n ) x = ∑ ⎜ ⎟ x n = (1 + x ) m = ∑ ⎜ n⎟ n! n= 0 n!( m − n)! n= 0 n = 0⎝ ⎠ ∞例 2 bn=1, 则{ bn}的指数生成函数为xn Ge ( x ) = ∑ = ex n = 0 n!∞1指数生成函数的性质设数列{an},{bn}的指数生成函数分别为 Ae(x)和 Be(x), 则x Ae ( x ) ⋅ Be ( x ) = ∑ cn n! n= 0证:∞∞n⎛ n⎞ ,其中 c n = ∑ ⎜ ⎟a k bn − k ⎜k⎟ k = 0⎝ ⎠n∞ ∞ xn xk xl ∑ cn n! = Ae ( x ) ⋅ Be ( x ) = ( ∑ ak k! ) ⋅ ( ∑ bl l! ) n= 0 k =0 l =0 ∞ xn a k bn− k = ∑ xn ∑ ⋅ = ∑ n= 0 k = 0 k ! ( n − k )! n = 0 n! n ∞a k n! bn− k ∑ k! ⋅ ( n − k )! k =02nxn = ∑ n = 0 n!∞⎛ n⎞ ∑ ⎜ k ⎟ak bn− k ⎜ ⎟ k = 0⎝ ⎠n应用-多重集排列计数设 S={ n1⋅a1, n2⋅a2, … , nk⋅ak }为多重集, 则 S 的 r 排列数{ ar }的指数生成函数为Ge ( x ) = f n1 ( x ) f n2 ( x ) ... f nk ( x ) x2 x ni f ni ( x ) = 1 + x + + ... + 2! ni ! i = 1, 2, ... , k3证明考察指数生成函数展开式中 xr 的项,x m1 x m2 x mk ... , m1 ! m 2 ! m k !其中 m 1 + m2 + … + m k = r 0 ≤ mi ≤ ni, i = 1, 2, … , k (*)x m1 + m 2 + ...+ m k xr r! r! = 即 m1 ! m 2! ... m k ! r ! m1 ! m 2 ! ... m k ! ,ar = ∑ m1 ! m 2 ! ... m k !其中求和是对满足方程(*)的一切非负整数解来求. 一个非负整数解对应了{ m1⋅a1, m2⋅a2, … , mk⋅ak },即 S 的 r 组合r! 而该组合的全排列数是 ,因此 ar 代表了 S 的 r 排列数. m1 ! m 2 ! ... m k !4实例例 3 由 1,2,3,4 组成的五位数中,要求 1 出现不超过 2 次,但不能不出现,2 出现不超过 1 次, 3 出现可达 3 次,4 出现偶数次.求这样的五位数个数. 解:x2 x2 x3 x2 x4 )(1 + x )(1 + x + + )(1 + + ) Ge ( x ) = ( x + 2! 2! 3! 2! 4! x2 x3 x4 x5 = x+5 + 18 + 64 + 215 + ... 2! 3! 4! 5!N = 2155应用(生成函数求法)例 4 红、白、兰涂色 1×n 的方格,要求偶数个为白色, 问有多少方案? 解 设方案数为 anx2 x2 Ge ( x ) = (1 + + ...)(1 + x + + ...) 2 2! 2! 1 x 1 3x 1 x 2x −x = (e + e ) e = e + e 2 2 2 ∞ 1 ∞ n xn 1 ∞ xn 3n + 1 x n 3 = + = 2 n= 0 2 n! n! 2 n = 0 n! n= 0∑∑∑an =3n + 1 26递推方程的求法解法 2 递推方程 an = 2an-1 + (3n-1− an-1) a1 = 2 an = an-1 + 3n-1 a n = P3 , 解得 P = 3/2, a*n = 3n/2 通解 an = C + 3n/2 代入初值得 C = 1/2 解为 an = (3n+1)/27*n-122.6 高级计数高级计数Catalan数 第一类Stirling数 第二类Stirling数讨论要点定义 递推方程 恒等式 对应的组合问题 生成函数8Catalan数定义定义 一个凸 n+1 边形,通过不相交于n+1边形内 部的对角线把 n +1边形拆分成的三角形个数,记 作hn,称为Catalan数. 实例:h2=1, h3=2, h4=59递推方程考虑 n+1 条边的多边形,端点 A1, An+1 的边记为 a, 以 Ak+1(k=1, 2,…, n-1)A1 为边,An+1Ak+1 为另一 边,构成三角形 T, T 将多边形划分成 R1 和 R2 两个 部分,分别为 k+1 边形和 n-k+1 边形.hn =n −1k =1∑ hk hn− k ,n≥ 2h1 = 11 ⎛ 2n − 2 ⎞ hn = ⎜ ⎜ n−1 ⎟ ⎟ n⎝ ⎠10。
生成函数在求解递推关系中的应用研究

生成函数在求解递推关系中的应用研究作者:饶艳来源:《科教导刊》2010年第33期摘要生成函数在组合问题中的应用既灵活又非常广泛,利用生成函数来求解递推关系是一种有效而特别的方法。
中图分类号:0174文献标识码:A很多组合计数问题往往归结为求某个数列{an}的通项公式,而直接求某些数列的通项公式比较难,但可以建立数列所满足的递推关系,生成函数是求解数列递推关系的一种重要而有效的方法,本文主要讨论生成函数在求解递推关系中的应用,进而求出数列递推关系的一般项的表示公式。
1 生成函数的概念及性质1.1 定义设a0,a1,a2,…,an,…, 是一个数列,做形式幂级数f (x) = a0 + a1x + a2x2 +…+ anxn +…然后通过研究函数f (x) = aixi导出数列a0,a1,a2,…,an,…,的性质,则称f (x) = aixi为数列a0,a1,a2,…,an,…,的生成函数。
例如:数列1,,,,,…,,…对应的生成函数是f (x) = ln= x + x2 + x3 + … +xn+…;数列1,2,3,4,5,…,n,…对应的生成函数是f (x) == 1+ 2x + 3x2 + … +nxn-1 +…。
可见数列和它的生成函数是一一对应的,求得了生成函数,数列的通项就可以知道了,因此,可以用生成函数来求解递推数列的通项。
1.2 下面给出生成函数的一些性质设数列{an},{bn},{cn}的生成函数分别是A(x),B(x),C(x)。
性质1若bn = an,为常数,则B(x) =A(x)性质2若cn = an + bn,则C(x) = A(x) + B(x)性质3若bn = an+1,则B(x) =性质4若bn = nan,为常数,则B(x) = A(x)性质5若bn = nan, 则B(x) = xA'(x)性质6若bn = ,则B(x) = ∫x0 A(x)dx这些性质可以求某些递推数列的生成函数,在此就不证明,接下来主要讨论生成函数在求解递推关系的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
第22章 递推关系与生成函数
用迭代法求解递推关系
hn 2hn1 1
h1 1,
h2 2 1,
h3 2h2 1 2(2 1) 1 2 2 1.......
2
hn 1 2
n2
2
n 3
n2
... 2 1
2
n 3
hn 2hn 1 1 2(2
H (n) (n 2) H (n 1) (n 2)(n 1) H (n 2) (n 2)(n 1)3 H (0)
(n 2) (n 1)3 2 (n 2)!
9
第22章 递推关系与生成函数
• 定义22.1.1 递推关系
单独白球与单独黄球的组合方式分别为: 1,1和 1,1
分别构造函数1+w和1+y。
20
第22章 递推关系与生成函数
生成函数
(1+r+r2) (1+w)(1+y)
=1+(r+w+y)+(r2+rw+ry+wy) +(r2w+r2y+rwy)+r2wy 把r,w,y都用x来表示,可得: (1+x+x2)(1+x)(1+x)
解:一、用组合方法来解: 一个都不选:1种方案 选1个球,3种方案 选2个球,4种方案 选3个球,3种方案 选4个球,1种方案
共有1+3+4+3+1=12种组合方案。
19
第22章 递推关系与生成函数
生成函数
二、用函数的方法 解:设r,w,y分别代表红球,白球,黄球;
单独红球的组合方式为1,1,1: 构造函数:1+r+r2
Fn Fn 1 Fn 2
n3
(22.3)
显然, F1 1, F2 1 .按题意,要求 F13 ,可将初始值 F1 F2 1
13
第22章 递推关系与生成函数
逐步进行迭代,最后求出
F13 233
对于(22.3)式的一般解 Fn ,可以用求特征根的方法求得:
1 1 5 n 1 5 n Fn [( ) ( ) ] 2 2 5 n0
第22章 递推关系与生成函数
显然 g 是单射,又对第二部分中的任何一个交替子集
S { j1, j2 ,, jr 1, jr }, j1 j2 jr 1 jr
由 S ' 对应的 {1,2,, n 2} 中的交替子集,若 jr 1 n 1, 则 S S '{ jr } 就是与 S ' 对应的{1, ,, n 2}中的交替子集, 即 g 是满射,故 g 是双射,从而第二部分中的交替
H (n) a1H (n 1) a2 H (n 2) ak H (n k ) 0 (22.1)
称为常系数线性齐次递推关系,其中 n k , ai (i 1,2,, k ) 是常数, 且 ak 0 ;而方程
x a1 x
k
k 1
a2 x
k 2
上式两边对
于是
x
微分得
1 2 n 1 1 2 x 3 x nx 2 (1 x)
1 f ( x) (1 x)2
24
第22章 递推关系与生成函数
几个基本的生成函数
1 2 3 k 1 x x x ... x ... 1 x
1 1 nx (nx) 2 (nx)3 ... (nx) k ... 1 nx
子集数为
f (n 2)
.由加法原理得:
f (n) f (n 1) f (n 2)
17
第22章 递推关系与生成函数
§22.2 生成函数
• 生成函数是可重复排列和组合问题中处理 特殊约束的一个方便工具.
18
第22章 递推关系与生成函数
生成函数
例:有红球两个,白球、黄球各一个,试 求有多少种不同的组合方案,假设两个红球没 有区别。
qi
是
ri
重根,则其通解为
H (n) (C11 C12 n C1r1 nr 1 ) q1n
n (C21 C22 n C2r2 nr 1 ) q2
(Ct1 Ct 2 n Ctrt nrt 1 qtn )
其中 C11, C12 ,, C1r ; C21, C22 ,, C2r ; Ct1, Ct 2 ,, Ctr 为任意常数。
4
第22章 递推关系与生成函数
递推关系
例一.Hanoi塔问题:N个半径各不相同 的圆盘,三根圆柱A,B,C; 求总共需要移动多少次? 设分别为h1,h2,…,hn
算法: n=1时,1次 n>1时,hn=2hn-1+1
5
第22章 递推关系与生成函数
§22.1 递推关系及其解法
• 定义22.1.1 给定一个数的序列 H(0),H(1),…,H(n),…,除了前面的若干数 外,将其余各项H(n)与它前面的若干个数 H(i)关联起来的方程叫做递推关系.
ak x
k k
0
(22.2)
称为(22.1)式的特征方程.
10
第22章 递推关系与生成函数
设 q1, q2 ,, qk 是(22.1)式的特征方程的根, n n ck qk (1)若 qi q j , i j ,则 H (n) c1 q1n c2 q2 是任意常数; 是递推关系(22.1)式的通解,其中 ci (i 1, 2,, k ) (2)若
1 1 1 2 n 1 n f ( x) x (1) x e x 0! 1! 2! n!
解:
23
第22章 递推关系与生成函数
(3) 解: 注意到
1,2,3, (n 1),
f ( x) 1 2x 3x nx
2
n 1
1 1 x x 2 x3 x n 1 x
{1,2,3,, n 2} 的交替子集到第二部分中的交替子集之间映射
g 如下:
{n} g () {n 1, n}
n为奇数 n为偶数
n为奇数但ik为偶数 n为奇数但ik为奇数 n为偶数但ik为偶数 n为偶数但ik为奇数
16
g (s) g ({i1, i2 ,ik })
S {n} S {n 1, n} S {n 1, n} S {n}
1 2 3 k 1 2 x 3x 4 x ... (k 1) x ... 2 (1 x)
1 n(n 1) 2 k 1 nx x ... C ( n k 1 , k ) x ... n (1 x) 2!
... 2 1) 1
2 n 1 2 n 2 ... 2 1
8
第22章 递推关系与生成函数
用迭代法求解递推关系
[例22.1.2] 解下列递推关系
H (n) (n 2) H (n 1) H (0) 2 n 1
解: 由 H ( n) 的定义,有
第22章 递推关系与生成函数
1
第22章 递推关系与生成函数
• 在组合数学中, 递推关系和生成函数是解决 计数问题的两个有密切联系的重要工具.
2
第22章 递推关系与生成函数
递推关系 递归是子程序或函数重复地调用自己 例一.Hanoi塔问题:N个半径各不相同 的圆盘,三根圆柱A,B,C; 算法: n=1时,直接把A柱的盘移到C上。 n>1时,先把A柱最上面的n-1张盘通过C 柱移到B上; 然后再将A柱上最下面的盘移到C盘上; 最后将B盘上的盘通过A盘移到C盘上。
H (n) (C1 C2 n) 2n
C1 0, (C1 C2 ) 2 1
解得
C1 0, C1 1/ 2.
从而得
1 H (n) n 2 n n 2n 1 2
12
第22章 递推关系与生成函数
用特征方程求解递推关系
[例22.1.3] 兔子问题(Fibonacci) 在一年开始之际买来一对新兔子放入栏中,已知每月 每对中的母兔生出一对新的性别不同的兔子,满二个 月后的每对新兔子也生出一对兔子,问一年以后栏中 有多少对兔子? 解: 设第 n 个月初时栏中的兔子 Fn对.可将 Fn 个月初时已经在围栏中的兔子,有 分成两部分,一部分是 n 1 Fn 1 对;另一部分是第 n 个月初出生的小兔,有 Fn 2 对,于是有
的生成函数.
第22章 递推关系与生成函数
22
[例22.2.1] 确定下列数列的一般生成函数
(1) 解: (2)
1,1,1,, (1)n ,;
1 f ( x) 1 x x x (1) x 1 x
2 3 n n
1 (1) 1 n 1 , , ,, (1) ,; 0! 1! 2! n!
= (1+x+x2)(1+2x+ x2) =1+3x+4x2+3x3+x4
这个函数的系数正好与取不同球数的组合数 相等,这就是生成函数的方法。
21
第22章 递推关系与生成函数
生成函数定义
定义22.2.1 设
a0 , a1, a2 ,an ,
是一个序列.作幂级数
f ( x) a0 a1x1 a2 x2 an xn
将{1,2,3,, n} 的所有子集分为两部分,一部分为
{1,2,3,, n 1} 的所有子集, 另一部分是由
{1,2,3,, n 1} 的每一个子集加进元素