组合数学—递推关系与母函数
注:原创不易,转载请务必注明原作者和出处,感谢支持!
一 写在开头
1.1 本文内容
本文内容为《组合数学》课程的第二部分,递推关系与母函数。这部分的内容分解图如下。
二 递推关系的定义与求解
2.1 递推关系的定义
递推关系的隐式定义为对于数列\(\{a_i \vert i \ge 0\}\)和任意自然数\(n\),一个关系到\(a_n\)和某些\(a_i(i < n)\)的方程,称为递推关系,记作:
初始条件
其中初始条件的个数被称为递推关系的阶。
递推关系的显式定义为对于数列\(\{a_i \vert i \ge 0\}\),把\(a_n\)和其前若干项联系起来的等式对所有\(n \ge k\)均成立,称该等式为\(\{a_i\}\)的递推关系。记作
2.2 递推关系的建立
递推关系的建立步骤:
- 第一步:找出第\(n\)项与其前面最近几项的关系
- 第二步:获得最前面几项的具体值,即初值
递推关系的建立实例
实例1:有一个小孩要爬上有\(n\)个台阶的楼梯,他一步可以爬一个台阶或者两个台阶。这个小孩爬上这\(n\)个台阶楼梯的不同方法的数目记作\(a_n\),则\(a_n\)的递推关系为:
实例2:在信道上传输由\(a, b, c\)三个字母组成的长为\(n\)的字符串,若字符串中有两个\(a\)连续出现,则信道就不能传输,令\(a_n\)表示信道可以传输的长为\(n\)的字符串的个数,求\(a_n\)满足条件的递推关系,则
实例3:把\(n\)个相同的球放入\(k\)个不同的盒子中,每个盒子中的球不少于2个又不多于4个。其不同的放法的数目记作\(a_{n,k}\),求\(a_{n,k}\)的递推关系。则
对于\(n = 0\)或\(n = 1\)或\(n > 4\),有\(a_{n,1} = 0\)
2.3 递推关系的求解
对于\(r\)阶递推关系的一般形式
其中,\(n \ge r, c_r \ne 0\)
若\(e(n) = 0\),则称其为齐次递推关系式
若\(e(n) \ne 0\),则称其为非齐次递推关系式
当\(c_i(n) = c_i, (i = 1, 2, ..., r)\),则称其为常系数递推关系式
对于常系数齐次递推关系式
其中,\(c_r\)不等于0
其特征方程为:
若解得其全部互不相等的特征根为\(m_1, m_2, ..., m_i\),并且其重数分别为\(e_1, e_2, ..., e_i(e_1 + e_2 + ... + e_i = r)\),则递推关系式对应\(m_i\)部分的通解是:
从而,该常系数齐次递推关系式为:
对于非齐次常系数递推关系式
其解为对应的其次常系数递推关系式的通解\(\bar{a_n}\)加上该非齐次常系数递推式的特解\(a_n^*\),即:
而非齐次递推关系式
特解的常见形式有:
- 当\(f(n) = b\)时,\(a_n^* = An^k\),其中1是k重特征根
- 当\(f(n) = b^n\)时,\(a_n^* = An^kb^n\),其中b是k重特征根
- 当\(f(n) = n^s\)时,\(a_n^* = n^k(A_sn^s + A_{s-1}n^{s-1} + ... + A_1n + A_0)\),其中1是k重特征根
- 当\(f(n) = b^nn^s\)时,\(a_n^* = n^kb^n(A_sn^s + A_{s-1}n^{s-1} + ... + A_1n + A_0)\),其中b是k重特征根
三 母函数的定义和性质
3.1 母函数的定义
对于数列\(a_0, a_1, ..., a_n, ...\)构造形式幂级数
则称函数\(G(x)\)是数列\(a_0, a_1, ..., a_n, ...\)的母函数
3.2 母函数的性质
设数列\(\{a_n\}, \{b_n\}, \{c_n\}\)的母函数分别为
则有
性质1:若
则
\(B(x) = x^l A(x)\)
性质2:若\(b_n = a_{n+l}\),则
性质3:若\(a_n = b_n + c_n\),则
性质4:若\(b_n = n \cdot a_n\),则\(B(x)= x \cdot A'(x)\)
性质5:若
则
3.3 母函数的幂级数展开形式
常用的母函数的幂级数展开式有:
四 用母函数求解递推关系
用母函数来求解递推关系的步骤如下:
- 将递推关系式变成母函数方程
- 求解母函数
- 将母函数变成幂级数形式
比如,有递推关系\(a_n - 2a_{n-1} = 1, a_0 = 0\),求\(a_n\)。解题过程如下:
所以,易知解为\(a_n = 2^n - 1\)
五 用母函数求解计数问题
5.1 母函数求解组合数
\(\{M_1 \cdot a_1, M_2 \cdot a_2, ..., M_k \cdot a_k\}\)的\(r\)可重组合的母函数为
则\(x^r\)前的系数就是所求\(r\)可重组合数
当\(M_i = 1\)时,\(\{a_1, a_2, ..., a_k\}\)的\(r\)无重组合数的母函数为
同样,\(x^r\)前的系数就是所求\(r\)无重组合数
当\(M_i = \infty\)时,\(\{\infty \cdot a_1, \infty \cdot a_2, ..., \infty \cdot a_k\}\)的\(r\)可重组合数的母函数为
同样,\(x^r\)前的系数就是所求
用母函数求解组合数应用举例。
把4个相同的球放入5个不同的盒子里,要求第一、二、三每盒最多不超过1个,第四、五每盒最多不超过2个,求方法数的母函数
展开式中\(x^4\)的系数为所求
5.2 母函数求解排列数
对于序列\(a_0, a_1, ..., a_n, ...\),函数
称为序列\(a_0, a_1, ..., a_n, ...\)的指数型母函数。
与上述的使用母函数求解组合数类似,用母函数求解排列数有如下定理:
令\(S=\{M_1 \cdot a_1, M_2 \cdot a_2, ......, M_k \cdot a_k\}\),\(h_n\)是\(S\)的\(n-\)排列数,则序列\(h_0, h_1, ......, h_n, ......\)的指数型母函数\(G_e(x)\)为
因此,当\(n=M_1 + M_2 + ... +M_k\)时,则\(x^n\)的系数为全排列数
六 整数拆分问题
将\(n\)个物体全部分配到\(m\)个位置上的问题,根据物体和位置是否有区别可分为:
- 整数的有序拆分(物体相同,位置不同)
- 整数的无序拆分(物体相同,位置相同)
- 集合的有序拆分(物体不同,位置不同)
- 集合的无序拆分(物体不同,位置相同)
6.1 整数的有序拆分
对于整数的有序拆分,若不允许有空位出现,则拆分数\(C_m(n)\)为
若允许出现空位,则拆分数\(B_m(n)\)为
6.2 整数的无序拆分
对于整数的无序拆分,若允许有空位,则分配数为下列母函数展开式中\(x^n\)的系数
若不允许有空位,则分配数为下列母函数展开式中\(x^n\)的系数
6.3 集合的有序拆分
对于集合的有序划分,若允许有空位,则分配方案数为\(m^n\)。
若不允许有空位,则分配方案数为
6.4 集合的无序拆分
对于集合的无序划分,若允许有空位存在,则分配方案数为
若不允许空位的存在,则分配方案数为