您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 8.用计算机做科学实验
用法:for变量in范围:例如:foriinrange(1,100):复习:1、forin循环结构2、if选择结构用法:if条件1or(and)条件2:例如:if7instr(i)ori%7==0:用枚举算法寻找问题多解桓台县实验学校耿晓丽学习目标:1、掌握什么是枚举法;2、掌握用枚举算法设计程序的基本思路;3、学会使用枚举算法分析、解决拍“7”小游戏问题和百钱买百鸡问题。小游戏:“拍7”小游戏游戏规则:把从1开始的自然数中含“7”的数称作“明7”;把不含“7”且是“7”的倍数的数称作“暗7”。从1开始轮流报数,轮到报“明7”或“暗7”的人,不能出声,只拍一下手。激趣导入,感受新知什么是枚举算法把问题所有可能的解都一一列举出来,并按照问题要求的条件逐个判断每个答案是否是正确的解,做到不遗漏不重复,这就是枚举算法。例如:搜索公交车路线、挑烂苹果、自行车轮胎修理……任务一:打开“明7.py”程序,修改程序并测试,找到1-100内的明7(参考微视频)#!/usr/bin/python3n=100foriinrange(______)if_____________print(找到的明7数有:,i)任务驱动,探索新知任务一:打开“暗7.py”程序,修改程序并测试,找到1-100内的暗7(参考微视频)#!/usr/bin/python3n=100foriinrange(_____):if__________________and__________:print(找到的暗7数有:,i)任务驱动,探索新知枚举算法的解题思路1、确定枚举对象、枚举范围和判定条件,枚举对象是解决问题所需要逐一列举的研究对象,枚举范围是枚举对象所有可能情况所构成的集合,判定条件用于检验确定真正的解。2、逐一枚举可能的解,并验证每个解是否是问题的解。“拍7”小游戏代码:枚举范围:100以内#!/usr/bin/python3n=100foriinrange(1,n+1):if7instr(i)ori%7==0:print(i)枚举对象:i枚举条件:含有7或者能被7整除任务二:百钱买百鸡问题公鸡每只5钱,母鸡每只3钱、小鸡3只1钱,用100钱买100只鸡,问:公鸡、母鸡、小鸡各多少只?枚举范围?1—100或3—100枚举对象?x,y,z枚举条件?5*x+3*y+z/3=100x+y+z=100拓展延伸,巩固新知任务二:打开“百钱买百鸡.py”程序,修改代码,并测试。(小组合作)#!/usr/bin/python3forxinrange(________):foryinrange(________):forzinrange(________):if_____________________________________:print(公鸡、母鸡、小鸡的数量分别是:,x,y,z)#!/usr/bin/python3forxinrange(______):foryinrange(______):____________if______________:print(x,y,z)“百钱买百鸡改进.py”程序改进代码:枚举范围?枚举对象?枚举条件?枚举对象可以减少循环嵌套的层数,枚举范围可以减少循环次数。有趣的数学问题:水仙花数问题:153=13+53+33回文数问题:12321鸡兔同笼问题密码箱问题:1?8或?18枚举法完成实现最简单,用于解决答案是多解的情况。枚举算法的优劣:优势:劣势:枚举算法要满足一定的条件,而且速度可能很慢,效率低,还有一些问题解决不了。跳绳:甲同学每天跳绳的次数(用a表示)a1=100第一天a2=a1+5第二天a3=a2+5第三天乙同学每天跳绳的次数(用b表示)b1=100第一天b2=b1第二天b3=b2+10第三天这节课你的收获总结归纳,梳理新知当堂检测乔布斯说过:每个孩子都应该学习编程,因为它教会你思考。希望同学们勤于动脑,大胆实践,争取也做一名编程高手!
本文标题:8.用计算机做科学实验
链接地址:https://www.777doc.com/doc-5675079 .html