在现实生活中要想解决一些问题,进行反复试验是很有用的。比如说数学中最小公倍数的问题,如果知道最小公倍数的定义,我们可以使用试验的方法来找到答案。假如要求出两个数a和b的最小公倍数,可以从这两个数中较大的那个数开始(假设a较大),先判断a是否是两个数的公倍数,如果不是再考察a+1是不是公倍数、a+2是不是公倍数,……,如此进行下去找到的第一个满足a、b两个数的公倍数一定是最小公倍数。这就是计算机程序设计中使用的穷举法。了解到这种方法的解题思路后,有人会认为这种方法虽然能有效地解决问题,但是在现实中人工去实施还是不太合适,因为要耗费大量的时间。但是计算机不一样,作为一种计算工具,它进行重复试验的速度是很快的,这样的穷举对于计算机来说是很容易的。因此在程序设计过程中,不能以常识认为穷举是一种“笨方法”,而是充分利用计算机的计算速度、具有计算思维的好方法。
迭代与穷举的基本原理类似,也是充分利用了计算机的计算速度快这一特点。生活中有这样一个问题:一个人有100元钱,银行存款的年利率是5%,问这个人把钱存到银行多少年后本金和利息和为200元?大部分人遇到这个问题时会这样思考:假设要存n年后可以达到目标,那么根据条件可知100×(1+0.05)n=200,要求出n就必须求对数了。学过数学的人都知道求对数不是一件容易的事,如果不借助计算工具可能无法求出。实际上,这个问题按照计算思维的思想来求解应该这样做:因为不知道存多少年才能达到目标,所以可试着一年年地存下去,第一年后本利和是100×(1+0.05),结果记录在变量x中;第二年本利和是x×(1+0.05),结果还是记录在x中;……;如此继续,到第n年,算出的本利和如果大于等于200就达到目标了,也就不用再继续试算下去了,至此,答案也就求出来了。这就是用计算思维的思想解决了这个问题,但是没有求对数,而是在每次计算本利和时用了上一年的本利和,这就是迭代。(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。