研究生课程—算法设计与分析之枚举算法.pptVIP

研究生课程—算法设计与分析之枚举算法.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
研究生课程—算法设计与分析之枚举算法

算法设计与分析 北京交通大学计算机与信息技术学院 李清勇 E-mail: qingyongli@ Tel:主校区: 9号楼 北314 课前面试 找出“水仙花数” “水仙花数”是一个神奇的3位数,其各位数字立方和等于该数本身。例如,153就是一水仙花数。 怎样找出所有的“水仙花数”? 3位数(100~999) 各位数字立方和等于该数本身 课前面试 猴子分桃 五只猴子一起摘了一堆桃子,因为太累了,它们商量决定,先睡一觉再分。一会其中的一只猴子来了,它见别的猴子没来,便将这堆桃子平均分成5份?,结果多了一个,就将多的这个吃了,并拿走其中的一份。一会儿,第2只猴子来了,他不知道已经有一个同伴来过,还以为自己是第一个到的呢,于是将地上的桃子堆起来,再一次平均分成5份,发现也多了一个,同样吃了这1个,并拿走其中一份。接着来的第3、第4、第5只猴子都是这样做的……根据上面的条件,问这5只猴子至少摘了多少个桃子?第5只猴子走后还剩下多少个桃子? 枚举算法基本思想 枚举算法 也称之为穷举算法,就是按照问题本身的性质,一一列举出该问题所有可能的解,并在列举的过程中,逐一检验每个可能解是否是问题的真正解。若是,则采纳这个解;否则抛弃它。 不能遗漏 不要重复 枚举算法基本思想 枚举算法 也称之为穷举算法,就是按照问题本身的性质,一一列举出该问题所有可能的解,并在列举的过程中,逐一检验每个可能解是否是问题的真正解。若是,则采纳这个解;否则抛弃它。 解的高准确性和全面性 实现简单,枚举算法通过循环来逐一列举和验证可能解 效率提升空间比较大 枚举三步 确定枚举对象 枚举对象也可以理解为是问题解的表达形式,一般需要用若干参数来描述 参数之间需要相互独立,而且,参数数目越少,问题解的有哪些信誉好的足球投注网站空间的维度也相应地小; 每个参数的取值范围越小,问题解的有哪些信誉好的足球投注网站空间也越小。 逐一列举可能解 根据枚举对象的参数构造循环,一一列举其表达式的每一种取值情况。 逐一验证可能解 根据问题解的要求,一一验证枚举对象表达式的每一个取值,如果满足条件,则采纳它,否则,抛弃之。 模糊数字 任务描述:一张单据上有一个5位数的编码,因为保管不善,其百位数已经变得模糊不请。但是知道这个5位数是57和67的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。 输入:每一行对应一个测试样例,每一行包含4个数字,依次是万位数,千位数,十位数和个位数。最后一行包含4个-1,表示输入结束。 输出:每组测试样例的结果输出占一行,第一个数字表示满足条件的编码个数,后面按升序输出所有满足条件的编码,数字与数字之间用空格隔开。 1 9 ? 9 5 模糊数字 枚举对象 Obj(h) :记h百位数数字, h =0~9 逐一列举 for(h=0;h10;h++) 逐一验证 19h95能否整除57和67 模糊数字续 任务描述:一张单据上有一个5位数的编码,因为保管不善,其万位数字和百位数已经变得模糊不请。但是知道这个5位数是57和67的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。 输入:每一行对应一个测试样例,每一行包含3个数字,依次是千位数,十位数和个位数。最后一行包含3个-1,表示输入结束。 输出:每组测试样例的结果输出占一行,第一个数字表示满足条件的编码个数,后面按升序输出所有满足条件的编码,数字与数字之间用空格隔开。 ? 9 ? 9 5 模糊数字续 枚举对象obj(d1,d2) 万位数数字,记为d1,d1=1~9 百位数数字,记为d2, d2 =0~9 逐一列举 for(d1=1;d110;d1++) for(d2=0;d210;d2++) 逐一验证 d1 9 d2 95能否整除57和67 模糊数字再续 任务描述:一张单据上有一个5位数的编码,因为保管不善,其万位数字和千位数已经变得模糊不请。但是知道这个5位数是57和67的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。 输入:每一行对应一个测试样例,每一行包含3个数字,依次是百位数,十位数和个位数。最后一行包含3个-1,表示输入结束。 输出:每组测试样例的结果输出占一行,第一个数字表示满足条件的编码个数,后面按升序输出所有满足条件的编码,数字与数字之间用空格隔开。 ? ? 0 9 5 m钱n鸡 任务描述:我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”,现在假定各鸡种的价格不变,拥有的钱数为m,需要购买的鸡数为n,试求出所有可能的购买方案总数。 输入:每行对应一个测试

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档