下载此文档

百鸡百钱问题实验报告.doc


文档分类:高等教育 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
百鸡百钱问题摘要: 本次报告主要讨论百鸡百钱问题,通常使用蛮力法策略,用枚举法来表现,列举出满足问题条件的解,排除一些明显不合理情况,分别验证解的可行性,得到最优算法。关键词:蛮力法;枚举法;百鸡百钱;HundredchickensmoneyAbstract:Thispaperreportshundredchickensmoney,usuallyusingabruteforcemethodstrategy,useenumerationmethodtotheperformance,meettheconditionslistedproblemsolution,excludesomeobviousunreasonablesituation,respectively,toverifythefeasibilityofthesolution,:thebruteforcemethod;enumeration;hundredchickensmoney;1 引言在求解一个较小规模的问题时,可以根据问题中的约束条件把可能的情况一一列举出来,然后注意尝试从中找到满足约束条件的解,若该问题规模较大,符合条件的情况很多,则需要进一步考虑,排除一些明显不合理的情况,尽可能减少问题可能解的列举数目。2 问题概述公元前5世纪,我国古代数学家张丘建在他的《算经》中提出了著名的百鸡百钱问题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一;百钱买百鸡,鸡翁,母,雏各几何?”3算法设计根据问题中的约束条件将可能的情况一一列举出来,但如果情况很多,排除一些明显的不会理的情况,尽可能减少问题可能解的列举数目,然后找出满足问题条件的解。完成百鸡百钱问题的常规算法(懒惰枚举)的实现和改进算法(非懒惰枚举)的实现,以实验方法证明对于同一问题可以有不同的枚举范围,不同的枚举对象,解决问题的效益差别会很大。算法设计一懒惰枚举法:首先问题有三种不同的鸡,那么我们可以设鸡翁为x只,鸡母为y只,鸡雏为z只。由题意给出一共要用100钱买一百只鸡,如果我们全部买鸡翁最多可以买100/5=20只,显然x的取值范围是1~20之间;如果全部买鸡母最多可以买100/3=33只,显然y的取值范围在1~33之间;如果全部买鸡雏最多可以买100*3=300只,可是题目规定是买100只,所以z的取值范围是1~:x+y+z=100且5*x+3*y+z/3=100。流程图如下所示:懒惰算法算法语言描述main(){intx,y,z;   //定义鸡翁,鸡母,鸡雏intcount=0;  //统计时间复杂度的变量for(x=1;x<=20;x++)  //鸡翁的取值范围for(y=1;y<=34;y++) //鸡母的取值范围for(z=1;z<=100;z++)//鸡雏的取值范围100==x+y+zand100==5*x+3*y+z/3; //约束条件  Cout<<x<<y<<z;//输出鸡翁,鸡母,鸡雏的可能取值count++;//统计此算法的时间复杂度}  程序运行结果截图:图1——懒惰算法程序运行截图算法设计二非懒惰枚举法:假如我设了鸡翁和鸡母的个数为x和y了,那么鸡翁和鸡母的数量就是确定的,那么鸡雏的数量就是固定的为100-x-y,那么此时就不再需要进行

百鸡百钱问题实验报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhufutaobao
  • 文件大小25 KB
  • 时间2020-02-05
最近更新