跳至正文
View Categories

< 1 min read

逆推算法-银行存款问题 #

  1. 逆推算法介绍
  2. 逆推算法思想
  3. 逆推算法的实现

收获 #

学完本节内容,可以初步理解并掌握逆推算法。

逆推算法介绍 #

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

逆推算法思想 #

年初准备一笔钱存入银行,保证每年年底取出 1000 元,到第 3 年刚好取完。假设银行一年整存零取月息为 0.31%,请问需存入银行多少钱?

假设第 3 年年初的银行存款为 x 元,则 x×(1+0.0031×12) = 1000,得 x = 1000/(1+0.0031×12)。同理可得前两年年初的银行存款,计算如下:
第 2 年年初的银行存款 = (第 3 年年初的银行存款+1000)/(1+0.0031×12);
第 1 年年初的银行存款 = (第2年年初的银行存款+1000)/(1+0.0031×12);
从已知的第3年的取款金额依次推导第2年、第1年的存款金额的这种方法被称为逆推法。

逆推算法的实现算法的实现 #

python实现代码如下:

def foo():
    total = 0.0  # 从第三年年底倒推
    for i in range(3):
        total = (total + 1000) / (1 + 0.0031 * 12)
    return total

print("第一次必须向银行存入%.2f元\n" % foo())

小结 #

理解并掌握逆推法的思想
掌握逆推法的代码实现

习题 #

  1. 习题1:画出逆推法的流程图
  2. 习题2:尝试用逆推法解决以下问题:小明18岁时候的身高为180cm,已知小明在14-18岁之间平均每年生长的高度为3.5cm,求小明14岁时候的身高为多少?