




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
枚举算法的程序实现HSSZ邓彰超教学目标重点难点1.了解枚举算法求解问题的基本过程,理解其基本思想,能用流程图描述该算法。(计算思维)1.理解枚举算法的编程实现过程,能编写程序并调试运行实现问题求解。(计算思维、数字化学习与创新)2.通过项目研究,认识枚举算法在学习生活中的应用价值,理解用计算机解决问题的优势。(信息意识、信息社会责任)导入新课(1)请你列举现实生活中与密码相关的实例。(2)猜密码游戏密码被破解之谜?问题引导:1、由纯数字组成的两位密码一共有多少种可能?
2、怎么做可以将密码找到?导入新课(3)总结规律给出穷举法的定义。00010203::979899
穷举法
将问题涉及的可能情况一一罗列出来,为了避免遗漏或者重复,要按照一定的规律,并且根据题目的条件逐个作出判断,从中挑选出符合条件的解答。导入新课引导探究用枚举法设计Python程序,破解两位由纯数字组成的密码。mima=random.randint(0,99)forainrange(0,10,1):#外层for
循环:表示密码的十位a从0-9变化forbinrange(0,10,1):#内层for循环:表示密码的个位b从0-9变化if10*a+b
=mima:
print(“密码是”+str(a*10+b))’对于ab的每一种组合都要与随机产生的两位密码相比较#破解两位数字密码的程序代码#表示密码的十位,b表示密码的个位突出重点重新对四行程序代码进行梳理,讲授本节课重点内容:
用枚举法设计程序的三个关键要素
枚举算法的三个关键要素:ab------------穷举变量的个数0-90-9------------穷举变量的变化范围a*10+b=mima
-------------答案的验证条件forainrange(0,10,1):#外层for
循环:表示密码的十位a从0-9变化forbinrange(0,10,1):#内层for循环:表示密码的个位b从0-9变化if10*a+b
=mima:
print(“密码是”+str(a*10+b))#对于ab的每一种组合都要与随机产生的两位密码相比较自主学习请你编写破解由纯数字组成的三位密码的程序。设定几个穷举变量abc穷举变量变化范围0-90-90-9答案的验证条件a*100+b*10+c=mima枚举算法的三个关键要素:mima=random.randint(0,999)点评总结:forainrange(0,9,1):
forbinrange(0,9,1):
forcinrange(0,9,1):if100*a+10*b+c=mima:
print(“密码是”+str(100*a+10*b+c))我们请一名学生到黑板编写,其他同学完成学案礼品问题。mima=random.randint(0,999)难点突破
防范黑客用穷举法破解密码的对策。小组讨论,总结归纳。
右侧表格是用某型号CPU本地穷举破解密码的时间对照表,请从这些数据中总结出穷举法破解密码所用时间与哪些因素有关?为什么?难点突破穷举法设计程序破解密码所用时间与两个因素有关:①穷举变量的个数②穷举变量的变化范围因此:找到这两个因素我们也就可以将穷举法设计程序能够合理的进行优化了,提高运行效率。
实战演练用穷举法解决实际应用问题。
礼品问题
班级即将要举行元旦迎新聚会,要用600元班费为50名同学准备50份礼品进行抽奖。请你负责去购买礼品,选定了公仔(20元/个)、水杯(15元/个)和笔筒(10元/个)三类商品。要求刚好用完600元买50件礼品(每种礼品至少一件),这三种礼品的数量可以如何搭配?有多少种方案?设定几个穷举变量xyz穷举变量变化范围1-501-501-50答案的验证条件
x+y+z=50andx*20+y*15+z*10=600穷举算法的三个关键要素:forainrange(0,9,1):
forbinrange(0,9,1):
forcinrange(0,9,1):If100*a+10*b+c=mima:
print(“密码是”+str(100*a+10*b+c))实战演练xyz(1,50,1)(1,50,1)(1,50,1)x+y+z=50andx*20+y*15+z*10=600:“公仔”+str(x)+“个”+“,”…实战演练
礼品问题(程序优化)班级即将要举行元旦迎新聚会,要用600元班会费为50名同学准备50份礼品进行抽奖。请你负责去购买礼品,选定了公仔(20元/个)、水杯(15元/个)和笔筒(10元/个)三类商品。要求刚好用完600元买50件礼品(每种礼品至少一件),这三种礼品的数量可以如何搭配?有多少种方案?枚举次数:
50*50*50=125000次forxinrange(1,50,1):foryinrange(1,50,1):
forzinrange(1,50,1):If……:
…….
forxinrange(1,28,1):
foryinrange(1,38,1):
forzinrange(1,48,1):If……:
…….
枚举次数:
28*38*48=51072次forxinrange(1,28,1):foryinrange(1,38,1):z=50-x-yIf……:
…….枚举次数:
28*38=1064次将枚举法设计程序能够合理的进行优化的重要性和必要性。总结归纳让学生对本节课进行知识回顾1、枚举算法的定义。2、明确枚举算法的三要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南思政党史课题申报书
- 材料课题申报书范文
- 办公隔断合同范例
- 假肢定制合同范例
- 临沧代理记账合同范本
- 甘肃教学课题申报书
- 下水道整修合同范本
- 合法派遣合同范本
- 书画挂牌合同范本
- 公司激励股合同范本
- 急诊医院感染与控制课件
- 人教版 七年级英语下册 UNIT 2 单元综合测试卷(2025年春)
- 2024年“新能源汽车装调工”技能及理论知识考试题与答案
- 【地理】非洲-位置与范围 高原为主的地形课件-2024-2025学年湘教版(2024)七下
- 抢救车的管理
- GB/T 44927-2024知识管理体系要求
- GB/T 17350-2024专用汽车和专用挂车分类、名称及型号编制方法
- 2024年07月山东省泰山财产保险股份有限公司2024年夏季校园招考29名工作人员笔试历年参考题库附带答案详解
- 临床护理死亡病例讨论
- 2025年广东韶关城投集团招聘笔试参考题库含答案解析
- 医疗器械生产企业并购合同
评论
0/150
提交评论