《算法设计与分析》第二章习题部分答案

4.采用特征方程方法求解以下递归方程:

H(0)=0

H(1)=1

H(2)=2

H(n)=H(n-1)+9H(n-2)-9H(n-3) 当n>2

7.分析求斐波那契f(n)的时间复杂度。

9.对于一个采用字符数组存放的字符串str,设计一个递归算法求其字符个数(长度)。

#include <iostream> using namespace std; 
int Length(char *str)             //求str的字符个数 
{    if (*str=='\0') 
          return 0; 
     else 
          return Length(str+1)+1; 
} 
void main() 
{    char str[]="abcd"; 
     cout << str << "的长度: " << Length(str) << endl; 
} 

上述程序的执行结果如图所示:

知识点总结(第4题和第7题):

一、线性齐次递推式的求解

常系数的线性齐次递推式的一般格式如下:

f(n)=a1f(n-1)+a2f(n-2)+…+akf(n-k)     (1.1)

f(i)=bi0≤i<k

等式(1.1)的一般解含有f(n)=xn形式的特解的和,用xn来代替该等式中的f(n),则f(n-1)=xn-1,…,f(n-k)=xn-k,所以有:

  xn=a1xn-1+a2xn-2+…+akxn-k

两边同时除以xn-k得到:

  xk=a1xk-1+a2xk-2+…+ak

或者写成:

  xk-a1xk-1-a2xk-2-…-ak=0 (1.2)

 等式(1.2)称为递推关系(1.1)的特征方程。可以求出特征方程的根,如果该特征方程的k个根互不相同,令其为r1、r2、…、rk,则得到递归方程的通解 f(n)为:

再利用递归方程的初始条件(f(i)=bi,0≤i<k),确定通解中的待定系数,从而得到递归方程的解。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值