《离散数学ch13》由会员分享,可在线阅读,更多相关《离散数学ch13(87页珍藏版)》请在金锄头文库上搜索。
1、1,主要内容 递推方程的定义及实例 递推方程的公式解法 递推方程的其他解法 生成函数及其应用 指数生成函数及其应用 Catalan数与Stirling数,第十三章 递推方程与生成函数,2,13.1递推方程的定义及实例,定义13.1 设序列 a0, a1, , an, , 简记为 an . 一个把 an 与 某些个ai (in) 联系起来的等式叫做关于序列 an 的递推方 程. 当给定递推方程和适当的初值就唯一确定了序列.,Fibonacci数列:1,1,2,3,5,8, ,记作 fn . 递推方程 fn = fn1 + fn2 初值 f0 = 1,f1 = 1阶乘计算数列: 1,2,6,24,
2、5!,, 记作 F(n) 递推方程 F(n) = nF(n1) 初值 F(1) = 1,3,例1 从A柱将这些圆盘移到C柱上去. 如果把一个圆盘从 一个柱子移到另一个柱子称作一次移动,在移动和放置 时允许使用B柱,但不允许大圆盘放到小圆盘的上面. 问 把所有的圆盘的从A移到C总计需要多少次移动?,初值是T(1)=1 可证明解是 T(n)=2n1,移动n个盘子的总次数为T(n). 因此得到递推方程T(n) = 2T(n1) +1.,递推方程的实例:Hanoi塔,4,两个排序算法,归并算法 Mergesort (A,p,r) / 对A的下标p到r之间数排序 1. if p 0 and Ai key
3、 5. do Ai+1 Ai; i i 1 7. Ai+1 key,5,递推方程的实例:算法分析,例2 哪种排序算法在最坏情况下复杂度比较低?插入排序,归并排序 插入排序 W(n) = W(n 1) + n 1 W(1) = 0 解得 W(n) = O(n2). 归并排序,不妨设 n = 2k. W(n) = 2W(n/2) + n1W(1) = 0 解得 W(n) = O(nlogn),6,13.2 递推方程的公式解法,特征方程、特征根 递推方程的解与特征根的关系 无重根下通解的结构 求解实例 有重根下通解的结构 求解实例,7,其中 a1, a2, , ak为常数,ak 0 称为 k 阶常系
4、数线性齐次递推方程b0, b1, , bk1 为 k 个初值,定义13.2 常系数线性齐次递推方程的标准形:,常系数线性齐次递推方程,实例:Fibonacci 数列的递推方程,8,特征方程与特征根,9,递推方程解与特征根的关系,定理13.1 设 q 是非零复数,则 qn 是递推方程的解当且仅当 q 是它的特征根.,qn是递推方程的解 qn a1qn1 a2qn2 akqnk = 0 qnk (qk a1qk1 a2qk2 ak) = 0 qk a1qk1 a2qk2 ak = 0 (因为q0) q 是它的特征根,定理13.2 设 h1(n) 和 h2(n) 是递推方程的解,c1,c2为任意常数
5、, 则 c1h1(n)+c2h2(n) 也是这个递推方程的解. 推论 若 q1, q2, , qk 是递推方程的特征根,则 c1q1n + c2q2n + + ckqkn 是该递推方程的解,其中c1, c2, , ck 是任意常数.,10,无重根下通解的结构,定义13.4 若对常系数线性齐次递推方程的每个解 h(n) 都 存在一组常数c1,c2, ck 使得h(n) = c1q1n+c2q2n+ckqkn 成立,则称 c1q1n + c2q2n + + ckqkn 为该递推方程的通解,定理13.3 设q1, q2, , qk 是常系数线性齐次递推方程不等 的特征根,则 H(n)= c1q1n
6、+ c2q2n + + ckqkn 为该递推方程的通解.,11,例3 Fibonacci 数列:fn=fn1+fn2 ,特征根为,通解为,代入初值 f0 =1, f1=1, 得,解得,解是,实例,12,有重根下求解中的问题,例4,解 特征方程 x24x+4 = 0 通解 H(n) = c12n + c22n = c2n 代入初值得:c 无解. 问题:两个解线性相关,13,有重根下的通解结构,定理13.4 设 q1, q2, , qt 是递推方程的不相等的特征根, 且 qi 的重数为 ei,i=1, 2, , t,令,那么通解,14,例5 求解以下递推方程,其中待定常数满足以下方程组,原方程的解
7、为,解 特征方程 x4+x33x25x2 = 0 , 特征根1,1,1,2,通解为,求解实例,15,递推方程的标准型 通解结构 特解的求法多项式函数指数函数组合形式,常系数线性非齐次递推方程求解,16,递推方程的标准型及通解,17,例6 找出递推方程 an 2an1 = 2n2 的通解,如果 f(n)为n次多项式,则特解一般也是 n 次多项式,特解的形式:多项式,18,例7 Hanoi塔 T(n) = 2T(n1)+1T(1)=1,实例,解 令 T*(n) = P 代入方程P = 2P + 1 解得 P = 1T(n) = c 2n1, 代入初值得 c=1, 解为 T(n) = 2n 1.,1
8、9,例8 求解关于顺序插入排序算法的递推方程,解 设特解为W*(n)=P1n+P2,代入递推方程,得P1n+P2 ( P1(n1)+P2) = n1 无解. 设特解W*(n) = P1n2+P2n, 代入递推方程得(P1n2+P2n)(P1(n1)2+P2(n1)= n1 解得 P1=1/2, P2= 1/2. 通解为W(n) = c 1n + n(n1)/2 = c + n(n1)/2 代入初值W(1)=0,得到W(n)= n(n1)/2=O(n2).,实 例(续),20,特解的形式:指数,f(n)为指数函数 n,若 是 e 重特征根(e可以等于0),则特 解为Pne n , 其中P为待定常
9、数.,例9 通信编码问题 解 an = 6an1 + 8n1, a1=7 设 a*n = P 8n1 , 代入得 P = 4 通解 an = c6n + 48n1 代入初值得 an = (6n+8n)/2,例10 H(n)5H(n1)+6H(n2) = 2n, 解 令 H*(n)=Pn2n 代入得 Pn2n 5P(n1)2n1 + 6P(n2)2n2 = 2n 解得 P = 2, 特解 H*(n) = n2n+1,21,换元法 迭代归纳法 应用实例,13.3 递推方程的其他解法,22,思想:通过换元转化成常系数线性递推方程,解 令,代入得 bn = 2 bn1 + 1,b0 = 4 解得,例1
10、1,an0,换元法,23,解 H(k) = 2 H(k1) + 2k1H(1) = 1 令 H*(k) = P1k2k + P2 , 解得 P1=P2=1 H*(k) = k2k + 1 通解 H(k) = c 2k + k2k + 1 代入初值得 c = 1 H(k) = 2k + k2k +1W(n) = n log n n + 1,例12 归并排序,换元法:实例,24,迭代归纳法:归并排序,例13,25,迭代归纳法:错位排列,例14 Dn = (n1)(Dn1 + Dn2),解:,26,快速排序算法,算法 Quicksort (A,p,r) / p 和 r 分别表示A首和末元素下标 1.
11、 if p r2. then qPartition(A, p, r) / 划分为Apq1和Aq+1r 3. ApAq4. Quicksort(A,p,q1)5. Quicksort(A,q+1,r),27,划分过程,算法 Partition(A,p,r) 1. x Ap /选首元素作为划分标准x 2. i p1 3. j r+1 4. while true 5. do repeat j j 1 6. until A j x /Ai是从前找的第一个比x大的元素 9. if i j / 继续搜索Ai到Aj之间的范围 10 then A i A j / A i 与A j 交换,回到行4 11. el
12、se return j /结束While循环,28,实例,27 99 0 8 13 64 86 16 7 10 88 25 90i j 27 25 0 8 13 64 86 16 7 10 88 99 90i j 27 25 0 8 13 10 86 16 7 64 88 99 90i j 27 25 0 8 13 10 7 16 86 64 88 99 90j i 16 25 0 8 13 10 7 27 86 64 88 99 90,29,平均情况时间复杂度分析,递推方程,差消法化简,30,迭代求解,31,递归树,W(n)= n k (1+2+2k1) = nk (2k 1) = n log n n + 1,32,13.4 生成函数及其应用,牛顿二项式系数与牛顿二项式定理 生成函数的定义 生成函数的应用,33,牛顿二项式系数,定义13.5 设 r 为实数,n为整数,引入形式符号,称为牛顿二项式系数.,实例,34,牛顿二项式定理,定理13.6 (牛顿二项式定理) 设为实数,则对一切实数x, y,|x/y|1,有,若= m,其中m为正整数,那么,35,重要展开式,令x=z,y=1,那么牛顿二项式定理就变成,在上面式子中用z代替 z ,则有,