什么是迭代跟递归算法?二者有什么区别?(2)
2008-02-23 05:32:53来源:互联网 阅读 ()
利用迭代算法解决问题,需要做好以下三个方面的
一、确定迭代变量。在能够用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常能够使用递推或倒推的方法来完成。
三、对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程式必须考虑的问题。不能让迭代过程无休止地重复
例 1 : 一个饲养场引进一只刚出生的新品种
分析: 这是个典型的递推问题。我们不妨假设第 1 个月时兔子的只数为 u 1 ,第 2 个月时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有
Word-WRAP: break-Word" bgColor=#f3f3f3>以下是引用片段: u 1 = 1 , u 2 = u 1 u 1 × 1 = 2 , u 3 = u 2 u 2 × 1 = 4 ,…… |
根据这个规律,能够归纳出下面的递推公式:
以下是引用片段: u n = u n - 1 × 2 (n ≥ 2) |
对应 u n 和 u n - 1 ,定义两个迭代变量 y 和 x ,可将上面的递推公式转换成如下迭代关系:
以下是引用片段: y=x*2 x=y |
让
以下是引用片段: cls x=1 for i=2 to 12 y=x*2 x=y next i print y end |
例 2 : 阿米巴用
分析: 根据题意,阿米巴每 3 分钟分裂一次,那么从开始的时候将阿米巴放入容器里面,到 45 分钟后充满容器,需要分裂 45/3=15 次。而“容器最多能够装阿米巴 2 20 个”,即阿米巴分裂 15 次以后得到的个数是 2 20 。题目需要我们计算分裂之前的阿米巴数,不妨使用倒推的方法,从第 15 次分裂之后的 2 20 个,倒推出第 15 次分裂之前(即第 14 次分裂之后)的个数,再进一步倒推出第 13 次分裂之后、第 12 次分裂之后、……第 1 次分裂之前的个数。
设第 1 次分裂之前的个数为 x 0 、第 1 次分裂之后的个数为 x 1 、第 2 次分裂之后的个数为 x 2 、……第 15 次分裂之后的个数为 x 15 ,则有
以下是引用片段: x 14 =x 15 /2 、 x 13 =x 14 /2 、…… x n-1 =x n /2 (n ≥ 1) |
因为第 15 次分裂之后的个数 x 15 是已知的,假如定义迭代变量为 x ,则能够将上面的倒推公式转换成如下的迭代公式:
x=x/2 ( x 的初值为第 15 次分裂之后的个数 2 20 )
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 用托管C 监控Windows事件日志
下一篇: Visual C 编译器常用选项配置
- 什么是迭代跟递归算法?二者有什么区别? 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash