微信扫一扫打赏支持

算法与数据结构---5、递推

算法与数据结构---5、递推

一、总结

一句话总结:

递推算法就是对于一个问题,我们找到它数学对应的递推表达式,也就是相邻几项的关系。
递推算法就是对于一个问题,我们找到它数学对应的递推表达式,
也就是相邻几项的关系。
递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,
分解成了连续的若干步简单运算。
利用计算机计算能力很强的特点,可以很方便的一步一步(循环)计算从而得到解。

递推简单而言就是找规律,找出递推表达式

 

 

1、解决递推问题的一般步骤?

a、建立递推关系式
b、确定边界条件

 

 

2、递推的两种形式?

顺推法和倒推法

 

3、找出递推表达式的方式?

A、题目中非常明显给出
B、通过枚举前几项来找规律

 

4、递推在后面算法中的应用?

递归:递归中元素之间的关系,其实可以看做递推表达式
动态规划:动态规划中的 状态转移方程 其实也可以看做递推表达式

 

 

 

二、递推

博客对应课程的视频位置:5、递推
https://www.fanrenyi.com/video/27/272

 

/*
一、递推法是什么
递推算法就是对于一个问题,我们找到它数学对应的递推表达式,
也就是相邻几项的关系。
递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,
分解成了连续的若干步简单运算。
利用计算机计算能力很强的特点,可以很方便的一步一步(循环)计算从而得到解。

递推简单而言就是找规律,找出递推表达式

二、解决递推问题的一般步骤
1、建立递推关系式
2、确定边界条件


三、递推的两种形式
顺推法和倒推法

四、找出递推表达式的方式
1、题目中非常明显给出
2、通过枚举前几项来找规律

五、递推在后面算法中的应用
递归:递归中元素之间的关系,其实可以看做递推表达式
动态规划:动态规划中的 状态转移方程 其实也可以看做递推表达式


*/

 

2、兔子繁殖

/*

一对兔子,从出生后第3个月起每个月都生一对小兔子。
小兔子长到第3个月后每个月又生一对兔子。
假如兔子都不死,并且第1个月出生一对小兔子,请问第n个月有多少只兔子?

分析
第一个月:1对兔子
第二个月:1对兔子
第三个月:已有的兔子(上个月的1对兔子)+新生的兔子(第一个月兔子新出生的1对兔子)=2对兔子
第四个月: 
已有的兔子(上个月的2对兔子)+
新生的兔子(两个月前的兔子,第二月的兔子这个时候都有生育能力,都可以生小兔子,所以1对)=
2+1=3对兔子
第五个月:
已有的兔子(上个月的3对兔子)+
新生的兔子(两个月前的兔子,第三月的兔子这个时候都有生育能力,都可以生小兔子,所以2对)=
3+2=5对兔子
第六个月:
如何设f(n)表示第n个月的兔子总数
已有的兔子(上个月的5对兔子,为f(n-1))+
新生的兔子(两个月前的兔子,第四月的兔子这个时候都有生育能力,都可以生小兔子,所以3对,为f(n-2))=
f(n-1)+f(n-2)=5+3=8对兔子
...........
第n个月:f(n)= 
已有的兔子(f(n-1))+ 新生的兔子(前两个月的兔子f(n-2)都有繁殖能力,都可以生小兔子)
=f(n-1)+f(n-2)

得到递推关系式:f(n)=f(n-1)+f(n-2)

枚举找规律:
一月  1
二月  1
三月  2
四月  3
五月  5
六月  8

*/

 

 

 
posted @ 2020-06-08 09:14  范仁义  阅读(556)  评论(0编辑  收藏  举报