2.4.2基于枚举算法的问题解决 课件 2023—-2024学年人教_中图版(2019)高中信息技术必修1.pptxVIP

2.4.2基于枚举算法的问题解决 课件 2023—-2024学年人教_中图版(2019)高中信息技术必修1.pptx

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

分析问题分析出已知条件、求解目标和已知与未知的关系。设计算法然后推导构建出解析式。编程调试最后将数学解析式转换成程序表达式,进行编程实现并调试。解析算法基于解析算法的问题解决课堂小结

2.4常见算法的程序实现1.基于解析算法的问题解决2.基于枚举算法的问题解决

体验探索鸡兔同笼问题描述:一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有残疾的),上有35个头,下有94只足,问笼子里面有多少只鸡,有多少只兔子。解析算法1)分析问题已知条件:假设鸡有x只,兔子有y只,头a有35个,足b有94足求解:x,y值二者之间的关系:x+y=a2x+4y=b2)设计算法解析式x=2a-b//2y=b//2-a3)编程测试a=35b=94x=2*a-b//2y=b//2-aprint(鸡有:,x,只)print(兔子有:,y,只)

鸡兔头的数量脚的数量111+1=21*2+1*4=6121+2=31*2+2*4=10131+3=41*2+3*4=14……34134+1=3534*2+1*4=72穷举法(枚举法)解决鸡兔同笼问题一一列举可能的解,即枚举范围是多少?比如鸡是1~34只逐一检测可能的解,判定条件是什么?比如头的数量1+3=4脚的数量1*2+1*4=61.分析问题

2.设计算法一一列举循环逐一检测分支开始鸡从1-34序列中依次取数兔子的数量=35-鸡2*鸡+兔子*4==94输出鸡和兔子的数量结束FalseFalseTrueTrueforchickeninrange(1,35):forrabbitinrange(1,35):if(chicken+rabbit==35and2*chicken+4*rabbit==94):print(鸡有,chicken,只。)print(兔子有,rabbit,只。)3.编程调试优化程序forchickeninrange(1,35):forrabbitinrange(1,24):if(chicken+rabbit==35and2*chicken+4*rabbit==94):print(鸡有,chicken,只。)print(兔子有,rabbit,只。)

枚举算法,也称枚举法是依据问题的已知条件,确定答案的大致范围,在此范围内逐一列举出它所有可能的情况的方法。在列举过程中,既不能遗漏,也不能重复,通过逐一判断,验证哪些情况满足问题的条件,从而得到问题的答案。2.4.2基于枚举算法的问题解决1.基本概念枚举算法解题的基本思路:(1)确定枚举对象、范围和判定条件。(2)逐一枚举可能的情况并验证每个情况是否符合条件。

枚举算法的思想:一一列举逐一检验开始枚举值在给定范围吗?取下一个枚举值枚举值符合条件吗?输出该枚举值结束FalseFalseTrueTrue循环分支

问题:票据上有一个4位数字组成的编号,甲说:数字编号的前两位数字相同,但都不是零;乙说:数字编号的后两位数字是相同的,但与前两位不同;丙说:数字编号是一个整数的平方。根据以上线索推断出编号。例1票据中模糊数字推断问题

假设四个数字应是AABB,其中A≠0,A≠B,且AABB是一个整数的二次方。已知条件求解目标二者的关系票据中的数字。要求解的4位数字的编号必须同时满足所有的已知条件。分析问题

设计算法根据问题分析,只要一一列举出4位数字AABB中A与B的所有可以组合,保证A≠B且A≠0,再验证二次方问题,就可以得到问题的解。因此,该问题可使用枚举算法求解完成,其算法的流程图如右所示:结束开始A=1A10K=1000A+100A+10B+BC=sqrt(k)的整数部分A≠Bc*c=k输出票据编号kB=B+1B=0B10A=A+1FalseFalseFalseFalseTrueTrueTrue

编程实现与调试importmathA=1whileA10:B=0whileB10:ifA!=B:k=A*1000+A*100+B*10+Bc=int(math.sqrt(k))ifc*c==k:print(票据编号是:,k)B=B+1A=A+1保存文件,调试程序

枚举算法要注意的问题:题解的可能范围,不重不漏考虑优化算法,缩小枚举范围,提高解决问题的效率。

寻找1000以内的所有素数实践活动编程求解1000

您可能关注的文档

文档评论(0)

中小学教学资料 + 关注
实名认证
服务提供商

小学、初中、高中信息科技教案、试卷、课件等教学资源

1亿VIP精品文档

相关文档