逆推算法-银行存款问题 #
- 逆推算法介绍
- 逆推算法思想
- 逆推算法的实现
收获 #
学完本节内容,可以初步理解并掌握逆推算法。
逆推算法介绍 #
逆推法是从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程
逆推算法思想 #
年初准备一笔钱存入银行,保证每年年底取出 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:画出逆推法的流程图
- 习题2:尝试用逆推法解决以下问题:小明18岁时候的身高为180cm,已知小明在14-18岁之间平均每年生长的高度为3.5cm,求小明14岁时候的身高为多少?