递推算法

来源 :电脑报 | 被引量 : 0次 | 上传用户:leegimars
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  今天我们就来了解一个简单的算法:递推算法。通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。
  所谓顺推法是从已知条件出发,逐步推算出要解决的问题的方法。比如之前我们讲过的斐波拉契数列,设它的函数为f(n),已知f(1)=1,f(2)=1;f(n)=f(n-2)+f(n-1)(/1>=3。nEN)。则我们通过顺推可以知道,f(3)=f(1)+f(2)=2,f(4)=f(2)+f(3)=3……直至我们要求的解。
  同理,所谓逆推法从已知问题的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程,称为逆推。比如最简单的求数值的题目:将一个数乘以4,再加上112,减去20,最后除以4,这时得100,那么求这个数字是多少呢?这道题目我们就可以用逆推法来求解,100~4,加上20,减去112,除以4便是结果了。
  了解了递推算法的基本原理后,我们带入编程的思想来做一道题目:妈妈为小陈的四年大学学费准备了一笔存款,方式是整存零取,规定小陈每月月底取下一个月的生活费1000元。现在假设利率为1.71%,编写程序,计算妈妈最少需要存多少钱?
  这道题目可以采用逆推法分析存钱和取钱的过程,因为按照月为周期取钱,所以共四年48个月,并分别对每个月进行计算。为了在第48个月大学毕业时连本带利要取1000元,这要求出前47个月时银行存款的钱数。
  (1)第47个月月末存款=1000(1+0.0171/12)
  (2)第46个月月末存款=(47月月末存款+1000)/(1+0.0171/12)
  (3)第45个月月末存款=(46月月末存款+1000)/(1+0.0171/12)
  (47)第2个月月末存款=(第三个月月末存款+1000)/(1+0.0171/12)
  (48)第1个月月末存款=(第二个月月末存款+1000)/(1+0.0171/12)



  本次我们使用的编程语言为c语言。很明显这道题目采用递推算法中的逆序方法,我们已知最后第48个月要取出的金额数目为1000元,我們便可以先确定一个数组为money【49】,将1000元存放在money【48】中,然后通过循环的方法,利用递归的特性,可以得出一个计算公式,这里需要注意一下,这里的利率指的是年利率,月利率需要除以12。根据计算公式可得:(每个月月末存款+1000)/(1+0.0171/12);通过循环递推的方法从第48个月一直朝前计算,直到计算到第1个月的本末利息,便可得出最后的结果:46364.32元。
  递推算法的难度不大。代码知识内容都是我们学过的,通过递推算法我们了解了存款利息的计算方式,有兴趣的同学还可以把银行贷款的计算方法变成代码,贷款和存款利息的计算方式有差别。贷款方式基本上分为两种:等额本金和等额本息。感兴趣的同学赶紧动起手来了解尝试吧。
其他文献
每到暑期就是全家一起旅游的旺季。出门在外,要是手机续航时间不够长,没用多久就没电了怎么办呢?只要随身携带了这些充电神器,就能让你的手机有充足的电量可以使用。航嘉20W PD快速充电器  参考价格:69元  一有机会就给手机充电,是很多用户对抗手机续航不足的主要方法,所以你得准备一款充电速度怏的充电器。夏天大家都穿得比较少,特别是很多女生只会背一个小包包出门,这就对快速充电器的尺寸提出了较高的要求。
期刊
批量完成图片的压缩  虽然网上有很多图片压缩服务,但是这些服务最大的问题就是只能一张一张图片进行压缩操作。如果用户要想批量操作的话.那么只能借助于其他图片压缩工具,而Imagine就是一个不错的选择。  先通过浏览器打开这款工具软件的官方网站(https://github.com/meowtec/Imagine),点击右侧的Releases链接后,在打开的网页列表中下载Imagine-0.6.1.
期刊
寄宿的少女  要说放置游戏,男女通杀的“呱儿子”——《旅行青蛙》就以简约而颇具新意的旅行玩法,让不少玩家沉迷其中,对养了这样一个“儿子”可是百般关照,不仅早早给他备好食物,更是时时刻刻要去看看他回来没,给你带了些什么?甚至不少人还调侃比关心自己家孩子还要在意“呱儿子”的情况,真是让人无法自拔。  可惜的是,这样一个高光游戏,最终还是昙花一现,包括后面出来的中国版本依旧如此。你要说它不吸引人吗?非也
期刊
高端平台对电源要求较高  高端处理器、显卡因为规格高,功耗自然降不下来。就拿Intel最新的第11代醋睿来说,其采用的14nrn工艺潜力已经挖掘殆尽,可产品又要冲击高频率,所以只得大幅牺牲功耗来实现这一点。别看酷睿i9 11900K的TDP只有125W,似乎并不高,但是开启ABT技术,将温度墙限制放宽到100℃,从而实现全核5.1GHz的睿频频率之后,其满载功耗会达到300W以上。而就算是中端旗舰
期刊
找次品是一道经典的小学奥数题,通过“找次品”理解优化思想,培养推理能力,让学生充分感受到数学与日常生活的紧密联系,以往我们是通过画图、列表的形式来进行解答,现在我们要通过Scratch编程来完成解题,这需要对问题有清晰的认识,学会建立合适的数学模型。  找次品:7个零件中有一个次品(次品重一些),假如用天平称重,至少称几次能保证找出次品呢?  称重方法:(1)将7个零件分成3份(3,3,1),天平
期刊
作為一个每天服务上百甚至数百购机咨询的公众号,我们注意到有非常多的读者关心笔记本的键盘手感。很多咨询者都会在需求描述中加一句“键盘手感要好”。所以,在这里,我们对各家笔记本键盘的情况做一个简要的盘点。  先说说市场占有率最高的联想。联想的笔记本键盘水平总体上比较高,虽然旗下的ThinkPad品牌在键盘手感上相比早年有所下降(无论哪个系列都比较明显),但目前与其他厂商横向比较来看,依然是相对较好的,
期刊
在数学史上,有很多未被证明的猜想和定理,它们也成了著名的数学难题,而其中关于数论的问题有很多,今天我们用Python来求解德·梅齐里亚克的砝码问题。以后还将不定期地发布类似问题,欢迎关注。一、德·梅齐里亚克的砝码问题  一位商人有一個40磅的砝码,由于跌落在地而碎成4块。后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间的任意整数磅的重物。问这4块砝码碎片各重多少?二、算法分
期刊
电脑上的分享和协作  如果是一份比较复杂的演示文档,为了方便同事们之间进行共享编辑,可以使用WPS演示的分享功能。具体的操作和WPS表格类似,在WPS中打开需要共享的文档,点击右上角的“分享”,然后按提示创建分享的链接发给同事即可(图1)。  这样同事只要在浏览器中打开上述分享的链接。就可以直接进行在线编辑了。在线协作使用的金山在线文档的服务,协作者可以在此新建、删除幻灯片文档。所有操作都是实时保
期刊
作为国内开源硬件的杰出代表,掌控板是一款非常优秀的国产“创客”微控制器板,支持Python代码编程以及Mind+、mPython等主流图形化编程软件。使用单块掌控板进行编程,可以实现噪音计、身高测量仪、高温报警系统和天黑自动收衣服系统等案例;如果有两块掌控板,就可以借助蓝牙与WiFi双无线通讯,遵循MOTT(消息队列遥测传输)协议在SIoT开发平台(如Mind+的SIoT本地物联网、DFRobot
期刊
“打工一个月,就为给宠物拍张照”  养着一只田园大橘猫和一只金毛犬的谭思敏把最近拍的宠物照挂进了新家。  谭思敏平日里就爱给自家的宠物们拍照。手机相册一打开,几乎满屏都是猫狗的照片,只不过没有专业拍摄技术的她常常因为错过一些精彩瞬间而遗憾。所以,当她看到宠物群里的宠友分享的宠物写真后。立即被吸引了。  在筛选了当地众多家宠物摄影店和一些个人宠物摄影师的作品后,谭思敏最终选择了一家店面较大的、兼备宠
期刊