穷举法和递推法.pptVIP

  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文档。上传文档
查看更多
穷举法和递推法

穷举法和递推法 课前思考 某同学想登录QQ,可他忘记密码了,他只记得密码是一个5位数,67□□8,其中百位和十位上的数字不记得了,但他还记得该数能够被78整除,也能被67整除。你能帮他设计一个算法破解该密码吗? 密码的取值范围? 符合要求的条件? 程序: main() { long m; for(m=67008;m=67998;m+=10) { if(m%78==0m%67==0) printf(%ld,m); } } 穷举法定义 定义: 穷举法也称“枚举法”。基本思想是依题目的条件,确定答案的大致范围,在此范围内对所有可能的情况逐个验证,直到全部情况验证完。 本质:“列举所有可能” 穷举法步骤 程序: main() { long m; for(m=67008;m=67998;m+=10) { if(m%78==0m%67==0) printf(%ld,m); } } 例:判断 m 是不是素数(质数)。 素数:大于1且不能被1和自身以外整数整除的自 然数称为素数,如:2,3,5,7,11等 例:判断 m 是不是素数(质数)。 大于1且不能被1和自身以外整数整除的自然数叫素数。 多穷举对象:百钱买百鸡问题 我国古代数学家张丘建在《算经》一书中指出: 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 穷举法解题小结 穷举法效率 例:判断 m 是不是素数(质数)。 穷举法效率 改进后的百钱买百鸡 main() { int co, he, ch; for(co=0;co=19;co++) for(he=0;he=33;he++) { ch=100-co-he; if (co*5+he*3+ch/3.0==100) printf(cock=%d,hen=%d,chick=%d\n, co, he, ch); } } 请同学们计算改进后程序执行循环的次数? 20*34=680次 请同学们总结提高效率的方法 减少循环次数 减少循环层数 尽量缩小搜索范围 穷举算法适用的条件 请同学们判断下列问题能否用穷举法解决? 试找出所有的偶数? 有明显的穷举范围且求解对象应该是有限的; 使用一根长度为L厘米的铁丝,制作一个面积为S的矩形框,要求计算出满足这种条件的矩形的高h和宽w? 可以按某种规则列举对象 穷举算法适用的条件 请同学们判断下列问题能否用穷举法解决? 某同学想登录QQ ,可他记不清密码了,他只记得密码是一个5位数,67□□8,你能帮他设计一个算法求出该密码吗? 有穷举规则(符合问题的条件); 穷举算法适用的条件 穷举算法适用的条件是: 有明显的穷举范围且求解对象应该是有限的; 可以按某种规则列举对象; 有穷举规则(符合问题的条件); 一时找不出解决问题的更好途径时。 穷举法的优点、缺点 优点 算法简单 缺点 花费时间长 小 结 1.确定能否用穷举法解决 2.确定穷举对象和穷举范围 3.确定符合问题解的条件???? 4.考虑效率问题 递推法 课前思考 课前思考 课前思考 递推法 定义:利用问题本身具有的一种递推关系求 问题解的一种方法。 特点:无法直接求出问题的解,从一个已知 的事实出发,按一定的规律推出一个 事实,再从这个新的已知事实推出下 一个新的事实… … 递推法解题关键 关键: ①确定递推变量及初值 ②寻找递推公式(作为循环体) ③递推次数 课前思考 递推 递推 递推 递推——不固定递推次数 某城市2007年末汽车数量为30万辆,预计每年汽车增长率为6%,问多少年后该市汽车数量超过60万辆? 递推——逆推 猴子吃桃问题 猴子第一天摘下几个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,且又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天只剩下一个桃子了。问第一天有多少桃子? 猴子吃桃问题 猴子第一天摘下几个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,且又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天只剩下一个桃子了。问第一天有多少桃子? 猴子吃桃问题 main() { int s,i; s=1; for(i=2;i=12;i++)

文档评论(0)

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

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

1亿VIP精品文档

相关文档