生成函数在组合计数中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
生成函数在组合计数中的应用
【摘要】生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。最早提出母函数的人是法国数学家LaplaceP.S.在其1812年出版的《概率的分析理论》中明确提出。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。生成函数的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情况下求出数列的通项,生成函数是推导Fibonacci数列的通项公式方法之一。另外生成函数也广泛应用于编程与算法设计、分析上,运用这种数学方法往往对程序效率与速度有很大改进
生成函数在组合问题中的应用既灵活又具有一定的广泛性,掌握生成函数的构造方法可以帮助学生提高其数学思维能力及解决实际问题的能力,文章总结了生成函数在组合问题的几种常见用法。
【关键词】组合问题递推关系拆分
【前言】利用生成函数可以说是研究组合问题的一种最主要的常用的方法,生成函数的应用也是数学中“以退为进”思想的典型代表。生成函数这个名字看上去有点神秘,但其实它就是将一个数列转化成一个函数的方法。
其基本思想为:为了获得一个序列{:k≥0}={……}的有关知识,我们引用一个幂级数g(x)==……来整体表示这个序列,即g(x)为序列{:k≥0}的生成函数。这样,一个序列和它的生成函数一一对应,给了序列便得知它的生成函数;反之,求得生成函数序列
也随之而定,我们还可以通过对函数的运算和分析得到这个序列的很多性质。
本文试图通过一些实例谈一谈生成函数在组合上的几种应用。
1. 利用生成函数证明组合恒等式
组合恒等式的证明技巧性很强,解题方法独特,其中利用构造生成函数,比较等式两端对应项的系数,是证明组合恒等式的一种非常有效的方法。
求证: 2+3+4+…+n=
可以看出,该组合恒等式左端比较复杂,不太可能利用组合公式去证明,观察后发现等式左端各项规律性较强。通过分析,设法将等式左端看作是某一函数中确定项的系数,由为中项的系数,所以我们构造生成函数:
fn(x)=(1+x)+2+…+n (x≠ -1)
fn(x)中的系数即为2+3+4+…+n .同时,利用”错位相减法”易知:
fn(x)=+.
比较的系数即得所证结果
从上面可以看出,根据题意,灵活地引入生成函数是证明组合恒等式的关键所在。
2. 生成函数在递推关系上的应用
递推关系是计算中的一个强有力工具,而递推关系的求解一般比较困难.利用生成函数求解递推关系则是一种主要的、行之有效的方法。
求n位十进制数中出现偶数个5的数的个数。
令 = n位十进制数中出现偶数个5的数的个数,=n位十进制数中出现奇数个5的数的个数。
因此有关系: 其中
则,此关系为关于序列{}的递推关系,求解此递推关系是解决本问题的难点。我们可以考虑
引进序列{}的生成函数A(x).即:A(x)= ,利用错位相加减的方法,即:
A(x)=
则(1-8x)A(x)=8+9x+9= , A(x)=
再将A(x)展开成幂级数的形式:A(x)=(=
因此
递推关系的求解主要是利用递推关系求得生成函数的一种形式算法,生成函数确定了,相应的递推关系对应的结果就确定了,这样的例子还有很多,象着名的Hanoi塔问题,Fibonacci数列都是典型的利用生成函数解决递推关系的例子
3. 利用生成函数进行整数的拆分
组合数学中有很多实际问题都可以理解为将某一(些)整数按照一定条件进行拆分,而求所有拆分的种类或方法,利用生成函数可以简单有效地解决这类问题中的某些问题
求方程满足X
1+X
2
+X
3
+X
4
=20满足1≤ x
1
≤6,0≤ x
2
≤ 7,4 ≤ x
3
≤8,2≤ x
4
≤6的
整数解的个数。
此问题仍可看成是拆分数的问题,把20拆分成满足条件的4个整数和的方法数问题,根据x所需条件,引入生成函数:
g(x)中的系数即为所求的满足条件的整数解的个数。可以解得=96即为所求
4. 生成函数在组合计算上的应用
生成函数的应用确实很广泛,利用生成函数还可以解决在排列组合中有关排法种数的问题:
有红球两只,白球、黄球各一只,试求有多少种不同的组合方案。
此问题不能看成是简单的组合问题,也不是可重复元素的组合数问题,若用r,w,y分别代表红球、白球、黄球,则不同的组合方案可有下面的式子给出:
此结果可以看出,除一个球也不取的情况外,有:
(a)取一个球的组合数为3,即分别取红、白、黄三种;
(b)取两个球的组合数为4,即两个红的、一红一黄、一红一白、一黄一自;
(c)取三个球的组合数为3,即两红一黄、二红一白、一红一白一黄;
(d)取四个球的组合数为1,即两红一黄一白。
若此问题只求不同的方案种数,则可直接利用生成函数。设取r个球的组合数为C
r }的生成函数为:
(o≤r≤4),则{C
r
G(x) = (1+x +x2)(1 + x)2 = 1+3x十4x2十3x3 +x4。共有1+3+4+3+1 =12种组合方式。
设有n个物件,并设n ( r )是由n个不同物件中可任意重复地取r个物件生成函数的组合数。这个组合问题的生成函数即是「x r之系数等于n ( r ) 」之生成函数。对一个物件来说,我们可以不选取,选取一次,选取二次等等,其方法可用式子
表示。对第二个,第三个等物件也有同样作法。故其生成函数是
我们必须将它写成标准形式。因为