穷举、递归、迭代

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

穷举、递归、迭代

何志丹

1,需示分析

本部分演示了穷举、递归、迭代。穷举的基本思想是:首先根据题目的部分条件预定答案的范围,然后对此范围内所有可能的情况进行逐一检验,直到全部情况均通过验证为止。若某种情况符合题目的全部条件,则该情况为本题的一个解,若全部情况的验证结果均不符合题目的全部条件,则说明该题无解。迭代指把一个复杂问题的求解方程转化成相对简单的迭代算式,然后重复运行这个算式,直到得到最终解。递归:如果一个过程直接或间接有限次的调用了它本身,则称这个过程是递归的。穷举以百鸡问题为例,递归以求阶乘为例,迭代以求一元五次方程为例。

百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?

2,设计

百鸡问题的题目由静态控件、编辑框组成,使得用户可以动态改变鸡的价格、总钱数、总鸡数,当用户点击“穷举”按钮时,分析过程及结果显示在列表框中。

递归:用户输入一个数,按钮的标题变成n!(其中n是输入的数),分析过程与结果也显示在列表框中。

迭代:用户可以通过编辑框改变系数与控制精度,过程与结果显示在列表框中。为了避免无解,迭代一定次数后作无解处理。

3,测试:

百鸡问题,先测试原题再更改设置,注意:

1),每个控件都用到。

2),买不起一只鸡。

3),无解。

递归范围有限,可穷举,注意溢出。

求一元五次方程,注意:

1),无解,如:x*x+1=-1;

2),6个系数中0的个数从0到6(一元五次方程到常数方程)。

3),测试用例不要过于复杂。

有关用户:

1,编辑控件可更改设置。

2,注意溢出与无解。

[url=http://www.csdn.net/develop/read_article.asp?id=16885][/url]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航