求解递归方程的方法

合集下载

算法设计与分析知到章节答案智慧树2023年天津大学

算法设计与分析知到章节答案智慧树2023年天津大学

算法设计与分析知到章节测试答案智慧树2023年最新天津大学第一章测试1.下列关于效率的说法正确的是()。

参考答案:提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法;效率主要指处理机时间和存储器容量两个方面;效率是一个性能要求,其目标应该在需求分析时给出2.算法的时间复杂度取决于()。

参考答案:问题的规模;待处理数据的初态3.计算机算法指的是()。

参考答案:解决问题的有限运算序列4.归并排序法的时间复杂度和空间复杂度分别是()。

参考答案:O(nlog2n);O(n)5.将长度分别为m,n的两个单链表合并为一个单链表的时间复杂度为O(m+n)。

()参考答案:错6.用渐进表示法分析算法复杂度的增长趋势。

()参考答案:对7.算法分析的两个主要方面是时间复杂度和空间复杂度的分析。

()参考答案:对8.某算法所需时间由以下方程表示,求出该算法时间复杂度()。

参考答案:O(nlog2n)9.下列代码的时间复杂度是()。

参考答案:O(log2N)10.下列算法为在数组A[0,...,n-1]中找出最大值和最小值的元素,其平均比较次数为()。

参考答案:3n/2-3/2第二章测试1.可用Master方法求解的递归方程的形式为()。

参考答案:T(n)=aT(n/b)+f(n) , a≥1, b>1, 为整数, f(n)>0.2.参考答案:对3.假定,, 递归方程的解是. ( )参考答案:对4.假设数组A包含n个不同的元素,需要从数组A中找出n/2个元素,要求所找的n/2个元素的中点元素也是数组A的中点元素。

针对该问题的任何算法需要的时间复杂度的下限必为。

( )参考答案:错5.使用Master方法求解递归方程的解为().参考答案:6.考虑包含n个二维坐标点的集合S,其中n为偶数,且所有坐标点中的均不相同。

一条竖直的直线若能把S集合分成左右两部分坐标点个数相同的子集合,则称直线L为集合S的一条分界线。

若给定集合S,则可在时间内找到这条分界线L。

递归方程解的渐近阶的求法

递归方程解的渐近阶的求法

递归方程解的渐近阶的求法递归算法在最坏情况下的时间复杂性渐近阶的分析,都转化为求相应的一个递归方程的解的渐近阶。

因此,求递归方程的解的渐近阶是对递归算法进行分析的关键步骤。

递归方程的形式多种多样,求其解的渐近阶的方法也多种多样。

这里只介绍比较实用的五种方法。

1.代入法这个方法的基本步骤是先推测递归方程的显式解,然后用数学归纳法证明这一推测的正确性。

那么,显式解的渐近阶即为所求。

2.迭代法这个方法的基本步骤是通过反复迭代,将递归方程的右端变换成一个级数,然后求级数的和,再估计和的渐近阶;或者,不求级数的和而直接估计级数的渐近阶,从而达到对递归方程解的渐近阶的估计。

3.套用公式法这个方法针对形如:T (n)=aT (n / b)+f (n) 的递归方程,给出三种情况下方程解的渐近阶的三个相应估计公式供套用。

4.差分方程法有些递归方程可以看成一个差分方程,因而可以用解差分方程(初值问题)的方法来解递归方程。

然后对得到的解作渐近阶的估计。

5.母函数法这是一个有广泛适用性的方法。

它不仅可以用来求解线性常系数高阶齐次和非齐次的递归方程,而且可以用来求解线性变系数高阶齐次和非齐次的递归方程,甚至可以用来求解非线性递归方程。

方法的基本思想是设定递归方程解的母函数,努力建立一个关于母函数的可解方程,将其解出,然后返回递归方程的解。

本章将逐一地介绍上述五种方法,并分别举例加以说明。

本来,递归方程都带有初始条件,为了简明起见,我们在下面的讨论中略去这些初始条件。

递归方程组解的渐进阶的求法——代入法用这个办法既可估计上界也可估计下界。

如前面所指出,方法的关键步骤在于预先对解答作出推测,然后用数学归纳法证明推测的正确性。

例如,我们要估计T(n)的上界,T(n)满足递归方程:其中是地板(floors)函数的记号,表示不大于n的最大整数。

我们推测T(n)=O(n log n),即推测存在正的常数C和自然数n0,使得当n≥n0时有:T(n)≤Cn log n (6.2)事实上,取n0=22=4,并取那么,当n0≤n≤2n0时,(6.2)成立。

递归方程求解方法综述

递归方程求解方法综述

递归方程求解方法综述递归方程是数学中常见的一种表示方式,它描述了一个数列或函数之间的递推关系。

递归方程求解方法是指寻找递归方程的解析解或近似解的过程。

在许多应用领域,递归方程都是非常重要的,例如在计算机科学、自然科学及经济学等各个领域。

本文将从递归方程的求解方法综述入手,介绍常见的求解方法,包括代入法、特征根法、母函数法等,并举例说明其应用。

一、代入法代入法是求解递归方程的常见方法之一、它的基本思想是通过猜测法求得递归方程的解的形式,然后通过代入递归方程验证该猜测解是否成立。

如果成立,我们就可以得到递归方程的解析解;如果不成立,我们需要修改猜测解的形式,重复上述过程直到找到正确的解。

例如,考虑递推关系式$f(n) = 2f(n-1) + 3$,其中$f(0)=1$。

我们首先猜测$f(n) = a\cdot 2^n + b$,代入递推关系式可得:$a\cdot 2^n + b = 2(a\cdot 2^{n-1} + b) + 3$。

整理得$a\cdot 2^n + b = 2a\cdot 2^{n-1} + 2b + 3$。

化简可得$a\cdot 2^{n-1} = 2b + 3$。

由此可知,$b = \frac{a\cdot 2^{n-1} - 3}{2}$。

将$b$的值代入原方程得到$a\cdot 2^n + \frac{a\cdot 2^{n-1} - 3}{2} = 2(a\cdot2^{n-1} + \frac{a\cdot 2^{n-1} - 3}{2}) + 3$。

进一步化简可得$a = 6$。

因此,递归方程的解析解为$f(n) =6\cdot 2^n + \frac{3}{2}(2^n - 1)$。

二、特征根法特征根法是求解线性递归方程的常用方法。

这种方法基于线性递归方程的特征方程和特征根的性质,通过求解特征方程的根来得到递归方程的解析解。

考虑递归关系式$f(n) = af(n-1) + b$,其中$f(0)=c$。

递归方程求解

递归方程求解

T (n) = nlogb a + O(nlogb a ) = O(nlogb a )
⎧O(n) a<b ⎪ 综上所述: T ( n) = ⎨O (n log n) a=b ⎪ logb n ) a>b ⎩O(n
2、公式解法 K 阶常系数齐次递推方程: T ( n) − a1T (n − 1) − a2T (n − 2) − ... − ak T (n − k ) = 0
化简有: 12 Pn + (−34 P 1 1 + 12 P 2 ) n + (29 P 1 − 17 P 2 + 12 P 3 ) = 3n
2
2
比较两边的系数,有
⎧12 P 1 =3 ⎪ ⎨−34 P 1 + 12 P = 0 ⎪29 P − 17 P + 12 P = 0 2 3 ⎩ 1
解得: P 1 =
解递归方程
下面的求解方法,其正确性可阅读组合数学中的相关内容。 1、 递推法 例:Hanoi 塔问题递归算法的时间复杂性,由以下递归方程给出:
⎧T (n) = 2T (n − 1) + 1 ⎨ ⎩T (1) = 1
递推求解如下:
n≥2
T (n) = 2T (n − 1) + 1 = 2(2T (n − 2) + 1) + 1 = 22 T (n − 2) + 2 + 1 = 23 T (n − 3) + +22 + 2 + 1 ...... = 2n −1T (1) + 2n − 2 + ... + 22 + 2 + 1 = 2n −1 + 2n − 2 + ... + 22 + 2 + 1 = 2n − 1

特征方程求解递归方程

特征方程求解递归方程

得到: c1=0, c2=-1, c3=1 因此,递归方程的解为:
f (n) (c1 c2 n)q1n c3q3n 3n n
作业1
解下列递归方程: 1. f(n)=3f(n-1), f(0)=5 2. f(n)=2f(n-1) f(0)=2 3. f(n)=5f(n-1) – 6f(n-2), f(0)=1, f(1)=1 4. f(n)= -6f(n-1) – 9f(n-2), f(0)=3, f(1)=-3
由初始条件得:
f (0) c1 c2 c3 0 f (1) c1 2c2 3c3 2 f (2) c 4c 9c 10 1 2 3
得到: c1=0, c2=-2, c3=2
因此,递归方程的解为:
f (n) 2(3n 2n )
化简后得到:
2 A1n 2 A2 10 A1 4n
由此得到联立方程:
2 A1 4 2 A2 10 A1 0
解得:A1=2, A2=10 非齐次递归方程的通解为:
f (n) c13 c2 4 (2n 10)2
n n
n
初始条件代入有:
f (1) 3c1 4c2 24 2
n 1 1 n i 1 i 1 k
r 1
n i
... ck q
前面2种情况下的c1,c2,…,ck均为待定系数;
将初始条件代入,建立联立方程,确定各个系数具体值,得到 通解f(n) 例1. 3阶常系数线性齐次递归方程如下
f (n) 6 f (n 1) 11 f (n 2) 6 f (n 3) f (0) 0 f (1) 2 f (2) 10

组合数学4_排列组合

组合数学4_排列组合
方程解的个数 购票问题
1.排列组合
[例] 下图所示的棋盘中,若要从左下角走到右上角,并且规定只
能向右或者想上走,问有多少种方案?
1.排列组合
加法原理
设事件A有m种产生方式,另一事件B有n种 不同的产生方式,则产生事件A或B之一有 m+n种方式。
集合论语言: 若 |A| = m , |B| = n , A∩B = ∅ , 则 |A∪B| = m + n 。
设r1+r2+…+rt=n , 对1,2,…,t分别加下标,得到 P(n;r1,r2,…,rt)·r1!r2!…rt! = n! n! ∴ P(n;r1,r2,…,rt)= ———— r1!r2!…rt!
1.排列组 P(n,r)/r , 1≤r≤n
2.排列组合的分拆表示
1.排列组合
[例] (1) 求小于10000的含1的正整数的个数; (2) 求小于10000的含0的正整数的个数。 解答: (2) 不含0的1位数有9个,2位数有92 个,3位数有93 个, 4位数有94 个。 不含0小于10000的正整数有 9+92 +93 +94 =(95 -1)/(9-1)=7380个。含0小于10000的正整数有 9999 -7380=2619 个。
应用举例
密码锁设计问题——习题三第7题
解答: ①每3人至少缺1把钥匙,且每3人所缺钥匙不同。 故至少共有C(7,3)=35把不同的钥匙。 ②任一人对于其他6人中的每3人,都至少有1把钥 匙与之相配才能开锁。故每人至少持C(6,3) =20把不 同的钥匙。
应用举例
密码锁设计问题——习题三第7题
一个简单例子: 考虑M=4,N=3的情况, 求法同上。共C(4,2)=6 把不同的钥匙。每人 人 有C(3,2)=3把钥匙。 (见右图)

特征方程求解递归方程

特征方程求解递归方程

特征方程求解递归方程
在计算机科学和算法设计中,递归方程是非常常见的数学模型。

通常情况下,它们被用来描述某些重复性的过程或者算法的运行时间。

例如,计算斐波那契数列、快速排序算法等都可以用递归方程来描述。

解决递归方程的一种常见方法是使用特征方程。

特征方程是一个与原方程形式相似的代数方程,通过求解它的根可以得到递归方程的通项公式。

特征方程的求解需要一些数学知识,包括线性代数和微积分等。

但是,对于一些简单的递归方程,我们可以使用一些基本的技巧来求解它们的特征方程。

例如,对于斐波那契数列的递归方程f(n) = f(n-1) + f(n-2),我们可以将它转化为特征方程x^2 = x + 1,然后求解它的根为φ和1-φ(φ是黄金比例,约为1.618),从而得到斐波那契数列的通项
公式f(n) = (φ^n - (1-φ)^n) / √5。

特征方程可以帮助我们更加系统地理解递归方程,从而更好地设计和分析算法。

因此,学习特征方程的求解方法是非常有价值的。

- 1 -。

练习——简答题

练习——简答题

练习——简答题1.什么是算法?算法有哪些特征?答:算法是求解问题的⼀系列计算步骤。

算法具有有限性、确定性、可⾏性、输⼊性和输出性5个重要特征。

2.算法设计应满⾜的⼏个⽬标答:算法设计应满⾜正确性、可使⽤性、可读性、健壮性和⾼效率与低存储量需求。

3.算法设计的基本步骤答:算法设计的基本步骤是:(1)分析求解问题(2)选择数据结构和算法设计策略(3)描述算法(4)证明算法正确性(5)算法分析各步骤之间存在循环和反复过程。

4.什么是算法复杂性?它主要有哪两个⽅⾯构成?答:算法复杂性是算法运⾏时所需要的计算机资源的量,它包括两个⽅⾯:时间复杂性(需要时间资源的量)和空间复杂性(需要空间资源的量)。

5.分析算法复杂性的意义是什么?算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。

⼀个算法的复杂性的⾼低体现在运⾏该算法所需要的计算机资源的多少上⾯,所需的资源越多,我们就说该算法的复杂性越⾼;反之,所需的资源越低,则该算法的复杂性越低。

6.f(n)=O(g(n))答:f(n)=O(g(n))当且仅当存在正常量c和n0,使当n≥n0时,f(n)≤cg(n),即g(n)为f(n)的上界。

7.f(n)=W(g(n))答:f(n)=W(g(n))当且仅当存在正常量c和n0,使当n≥n0时,f(n)≥cg(n),即g(n)为f(n)的下界。

8.f(n)=Q(g(n))答:f(n)=Q(g(n))当且仅当存在正常量c1、c2和n0,使当n≥n0时,有c1g(n)≤f(n)≤c2g(n),即g(n)与f(n)的同阶。

9.算法的平均情况、最好情况、最坏情况,哪种情况的可操作性最好,最具有实际价值?答:设⼀个算法的输⼊规模为n,Dn是所有输⼊的集合,任⼀输⼊I∈Dn,P(I)是I出现的概率,有 =1,T(I)是算法在输⼊I下所执⾏的基本语句次数,则该算法的平均执⾏时间为:A(n)=算法的最好情况为:G(n)= ,是指算法在所有输⼊I下所执⾏基本语句的最少次数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档