美文网首页
递推算法思想

递推算法思想

作者: CCCCCccccccch | 来源:发表于2019-11-21 12:27 被阅读0次

递推算法是一种简单的算法,通过已知条件,利用特定关系得出中间推论,逐步递推,直至得到结果为止。

递推算法可分为顺推法逆推法两种

顺推法:从已知条件出发,逐步推算出要解决问题的方法。例如,斐波那契数列就可以通过顺推法不断递推算出新的数据。

逆推法:从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。

顺推实例:斐波那契数列

欧洲数学家斐波那契在他的著作《算盘书》中出了一个有趣的题目:如果一对兔子每月能生一对小兔子,而每对小兔子在它出生后的第3个月里,又能开始生一对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,1年后能繁殖出多少对兔子?

随月份增加,可以递推出兔子的总数是:1,1,2,3,5,8,13,21……这个数列有十分明显的特点:从第3个数开始,当前数据项为前面相邻两项之和。

这样的数列称为斐波那契数列:fib[i] = fib[i-1] + fib[i-2]

逆推实例:该存多少钱

父亲准备为小龙的四年大学生活一次性在银行储蓄一笔钱,使用整存零取的方式,控制小龙每个月月底只能提取1000元给下个月使用。假设银行一年整存零取的年利息为1.71%,请编程计算出父亲至少需要一次性存入多少钱才够小龙四年生活(四年的利息也计算在内)。

解题思路:

分析存钱和取钱的过程,可以采用逆推的方法。因为是按月取钱,因此把四年分为48个月,每个月分别进行计算。

若在第48个月小龙连本带息要取出1000元,则要求第47个月时银行存款的具体数额为(年利率除以12为月利率):

第47个月月末存款 = 1000/(1 + 0.0171 / 12) 

第46个月月末存款 = (第47个月月末存款 + 1000 )/(1 + 0.0171 / 12) 

第45个月月末存款 = (第46个月月末存款 + 1000 )/(1 + 0.0171 / 12) 

……

第1个月月末存款 = (第2个月月末存款 + 1000 )/(1 + 0.0171 / 12) 

通过以上过程就可以逆推最初要存入多少钱。

相关文章

  • 递推算法思想

    递推算法是一种简单的算法,通过已知条件,利用特定关系得出中间推论,逐步递推,直至得到结果为止。 递推算法可分为顺推...

  • 递推算法思想

    递推之顺推法解决“斐波那契数列”问题 Q :斐波那契数列因数学家列昂纳多·斐波那契以兔子为例子引入,又名“兔子数列...

  • 基本算法思想之递推

    分治算法的基本思想是将一个计算复杂的问题分为规模较小,计算简单的小问题求解,然后综合各个小问题,而得到最终问题的答...

  • 博览网:STL与泛型编程第四周笔记

    简书地址: 1、算法 基本的C++算法分为三类:排序算法、树算法、图算法 算法思想有三种:递推、分治、动态规划 以...

  • 算法思想

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举、递推、递归、分治、贪心、试探法、动态迭代和模拟。至于还有...

  • 29.算法入门

    算法与数据结构基础 一、基础算法思想二分: 递推: 枚举: 递归: 分治: 贪心: 试探: 模拟: 二、简单数据结...

  • 常见算法思想2:递推法

    递推法 递推算法犹如稳重的有经验的老将,使用“稳扎稳打”的策略,不断利用已有的信息推导出新的东西。在日常应用中有如...

  • 递推思想

    递推含义: 就是将一个要解决的“大问题”,转换为同类问题的“小问题”。 如果能够解决此类问题的最小问题,并能够以此...

  • 主定理的推导 Master theorem

    关于递推问题算法复杂度的的推导。递推公式: 分三种情况: 由递推公式可得:

  • 递推算法

网友评论

      本文标题:递推算法思想

      本文链接:https://www.haomeiwen.com/subject/cdpzictx.html