zoukankan      html  css  js  c++  java
  • 算法与数据结构---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
    
    */
     
  • 相关阅读:
    我该不该学习C语言
    Java入门系列-27-反射
    Java入门系列-26-JDBC
    Java入门系列-25-NIO(实现非阻塞网络通信)
    Java入门系列-24-实现网络通信
    Java入门系列-23-NIO(使用缓冲区和通道对文件操作)
    Java入门系列-22-IO流
    Java入门系列-21-多线程
    Java入门系列-20-异常
    Java入门系列-19-泛型集合
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13047562.html
Copyright © 2011-2022 走看看