穷举算法分析报告

穷举算法分析报告

ID:40278734

大小:27.02 KB

页数:4页

时间:2019-07-30

穷举算法分析报告_第1页
穷举算法分析报告_第2页
穷举算法分析报告_第3页
穷举算法分析报告_第4页
资源描述:

《穷举算法分析报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、穷举算法分析报告一.什么是穷举算法穷举算法:穷举算法就是将一个事件所有可能的结果全部列举出来,直到得到自己所需要的正确结果。又叫枚举法。对于我们计算机运行,穷举算法是一个很好的算法设计方法,其运用循环的方式解决问题,但是运用穷举算法解决问题缺点就是当问题较为复杂的时候,使用的时间过长。二.穷举算法存在的主要问题及其优化方案1.主要问题:穷举算法具有准确性、全面性和算法简单的优点;但是也存在一定缺点,比如说计算时间长就是致命缺点。2.优化方案:穷举算法要将事件的结果一一列举出来,那就势必要用到循环结构。那么我们就可以经过初步判断之后减少循环的次数这样就大大的缩小了运算的时间,减少运行的次数。

2、三.穷举算法设计一般流程提出问题→穷举可能的结果→筛选结果→得出正确答案四.穷举算法运用举例例一:运用穷举算法解决百元买百鸡的问题流程图:百元买百鸡→列举出一百元能买到鸡的所有结果→筛选共买到一百只鸡的结果→得出正确答案源代码:#include#includeintmain(){clock_tt1=clock();floatx,y,z;for(x=0;x<=100;x++)for(y=0;y<100;y++)for(z=0;z<=100;z++)if(x+y+z==100&&5*x+3*y+z/3==100)printf("%.0f%.0f%.0f",

3、x,y,z);clock_tt2=clock();printf("%d",t2-t1);return0;}运行结果:优化后的穷举算法:源代码:#include#includeintmain(){clock_tt1=clock();floatx,y,z;for(x=0;x<=20;x++)for(y=0;y<33;y++)for(z=3;z<=99;z++)if(x+y+z==100&&5*x+3*y+z/3==100)printf("%.0f%.0f%.0f",x,y,z);clock_tt2=clock();printf("%d",t2-t1

4、);return0;}运行结果:结果分析:1.优化后的次数比优化前的次数少。优化前共运行1000000次,优化后运行65000次。2.从时间上比较,第一次用时15毫秒,第二次用时0.例2:木棒任意分三份构成三角形的问题。流程图:十米长木棒分三份→所有能分成三份的结果→筛选可构成三角形的结果→得到正确答案数学知识:三角形构成依据:两边之和大于第三边,两边之差小于第三边。源程序:#include#include#includeclock_tt1=clock();intmain(){intx,y,z;for(x=1;x<=10;x++)for(y

5、=1;y<=10;y++)for(z=1;z<=10;z++)if(x>=y&&y>=z&&x+y+z==10&&x+y>z&&abs(x-y)#include#includeclock_tt1=clock();intmain(){intx,y,z;for(x=1;x<=5;x++)for(y=1;y<=4;y++)for(z=1;z<=3;z++)i

6、f(x>=y&&y>=z&&x+y+z==10&&x+y>z&&abs(x-y)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。