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