zoukankan      html  css  js  c++  java
  • 递推思想

    原文参考如下:

    算法洗脑系列(8篇)——第一篇 递推思想 


    今晚主演学的是‘递推思想‘’

    1.概念: 
      通过已知条件,利用特定关系逐步递推,最终得到结果为止,核心就是不断的利用现有信息推导出新的东西。

    2.分类:“顺推”和“逆推“

        顺推:从条件推出结果。

    (就好比你知道26个字母的顺序,A的下一个可以推出B;已经知道公式和参数,可以确切的得到结果)

        逆推:从结果推出条件。

    (已经知道公式和结果,要推导确切的参数)

    3. 

    <1> 顺推的例子 :“斐波那契”数列,说的是繁殖兔子的问题:

    如果1对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月就可以生1对小兔子,如果从1对初生的小兔子开始,1年后能

    繁殖多少兔子?

    思路:其实这个问题我们可以将兔子划分为“1月大的兔子“,”2月大的兔子“,”3月大的兔子“。

            ① 初始时:            一对1月大小兔子,总数为1对。

            ② 第一个月:         1月大的小兔子变成2月大的兔子,总数还是1对。

            ③ 第二个月:         2月大的小兔子变成3月大的兔子,繁殖了一对小兔子,总数为2对。

            ④ 第三个月:         3月大的兔子tmd有生了一对小兔子,上个月1月大的小兔子变成了2月大的兔子,总数为3对。

             ......                    ......

            F0=1

            F1=1

            F2=F0+F1

            F3=F1+F2

            ......

    Fn=Fn-2+Fn-1

    month = 12
    fab = [1, 1]
    for i in range(2, month):
        fab.append(fab[i - 2] + fab[i - 1])
    for i in range(len(fab)):
        print('i:{}'.format(fab[i]))

    <2> 逆推的例子

           这个一个关于存钱的问题,一个富二代给他儿子的四年大学生活存一笔钱,富三代每月只能取3k作为下个月的生活费,采用的是整存零取的方式。

    年利率在1.71%(产生的利息就是他的3K零用钱),请问富二代需要一次性存入多少钱。

    思路: 这个题目是我们知道了结果,需要逆推条件, 第48月富三代要连本带息的把3k一把取走,那么

            第47月存款应为: (第48个月的存款+3000)/(1+0.0171/12(月));

            第46月存款应为: (第47个月的存款+3000)/(1+0.0171/12(月));

             .....                    .....

            第1个月存款应为: (第2个月的存款+3000)/(1+0.0171/12(月));

      

    duration = [0] * 48
    rate = 0.0171
    print(rate / 12)
    for i in range(len(duration) - 1, -1, -1):
        duration[i - 1] = (duration[i] + 3000) / (1 + rate / 12)
        print(duration[i - 1])
        print(i)
    for i in range(len(duration) - 1, -1, -1):
        print("第{}个月末本利合计:{}".format(i + 1, round(duration[i], 2)))
  • 相关阅读:
    话说 SVN 与 Git 之间的区别
    CentOS 7 之安装 Oracle 11gR2
    @meda媒体查询
    为样式找到应用目标-CSS选择器
    JQuery和原生JavaScript实现网页定位导航特效
    CSS代码缩写
    认识CSS样式
    文档类型、DOCTYPE切换和浏览器模式
    MIME 参考手册
    微格式(microformat)
  • 原文地址:https://www.cnblogs.com/originalTblog/p/11717490.html
Copyright © 2011-2022 走看看