定义:建立序列中第n项与其前趋元素间的关系递归算法的分析。
递推关系an
a1=5 初始条件
an= an-1 +3 n≥2
a2=a1+3=5+3=8
a3=a2+3 = 8+3=11
递推关系是由数列第n项前的若干项确定第n项,并由此确定数列。
1、定义
数列a0,a1, ...的递推关系是一个由a0,a1,… an-1中的一些或全部确定an的等式。
数列a0.,a1, ...的初始条件是对数列的有限个元素给定的确定值。
Fibonacci级数
递推关系fn=fn-1+fn-2 (n≥3) 且 初始条件f1=1 f2=2
通项公式
递推关系、递归算法、数学归纳法 三者间关系非常密切!
例:Sn不含111的n位二进制字符串的个数,确定递推关系。
解:
以0开始的
以10开始的
以110开始的
Sn= Sn-1+Sn-2 n≥4
S1=2,S2=4,S3=7 Ck-1*Cn-k
Catalan数
思路:(0,0) → (k,k)→(n,n)通项公式如下:
Hanoi塔
Cn 移动次数
Cn=2Cn-1+1 n≥2
C1=1 其通项公式为:
习题:P219,1,4,5,37
5.2 求解递推关系
方法:数列a0,a1…an:的通项公式an.
代入法
定常系数线性齐次递推关系
例1:Sn=2Sn-1 S0=1。
例2:a1=2,an=an-1+3 n≥2
常系数线性齐次递推关系
形如an=c1an-1+c2an-2+ ... +ckan-k ck≠0的递推关系称为常系数线性齐次递推关系
K阶常系数线性齐次递推关系
- +k个初始条件
- a0=c0,a1=c1,.. .,ak-1=Gk-1
- 可以唯一确定一个数列
例:Sn=2Sn-1 一阶
fn=fn-1+fn-2
定理
设an= c1an-1 +c2an-2是2阶常系数线性齐次递推关系,如果S,T是解,则U=bS+dT也是解
如果r是t2- c1*t -c2=0的根,则rn是解。
a0=c0,a1=c1
r1,r2是t2-c1 *t -c2=0的不同的根,则存在b,d使得
例:鹿群n=0:200n=1 : 220
从n-1到n的增长头数为n-2到n-1的增长头数的两倍,写出递推关系,求通项公式。
定理5.2.14
r1= r2
设an= c1an-1 + C2an-2是2阶常系数线性齐次递推关系
a0=c0,a1=c1
r1=r2=r是t2-c1 t-c2=0的(同)根,则存在b,d使得
例:dn=4(dn-1-dn-2) d0=d1=1
t2-4t+4=0 r1=r2=2
dn=b2n+d* n2n 且d0=d1=1
d0=1=b20+ d * 0 * 2n =b
d1=1=b * 21+d * 1 * 21=2b+2*d=1
b=1,d=-1/2
dn=2n-n * 2n-1
习题:P231,1,4,14,22
k阶常系数线性齐次递推关系
如果r是方程tk-c1 tk-1-c2tk-2-…=0的m重根,
则可证明rn,nrn,…,nm-1rn都是解
5.3 递推关系与算法分析
用递推关系分析算法运行的时间
基本思想:
an表输入量为n时算法运行的时间
确定数列a0,a1,…的地推关系和初始条件,通过求解递推关系,确定算法所需要的时间。
例如计算快速排序,归并排序,选择排序等。详见数据结构。
网友评论