内容正文:
Phthon编程--枚举算法
微项目2
用枚举算法寻求问题多解
学习目标
1通过对枚举对象、范围、条件的构造,体验枚举
算法解决问题的思想。
2.借助枚举算法解决问题的思想,寻找解决问题的
多种答案组合。(培养计算思维)
枚举就是将问题所有可能的答案一一
列举,然后根据条
件判断各个答案是否合适,保留合适的,丢弃不合适的,做
到既不遗漏也不重复。
要使用枚举算法,首先要确定枚举对像、枚妆举范围和判
定条件。
(1)通过确定枚举范围列举该问题所有可能的解
(2)应用判定条件,验证每一个方案是不是问题真正的解。
变量
枚举对象
循环结构
枚举算法.枚举范围_____
选择结构
判定条件______
活动一:快速号找有规律的数据
1做游戏
同学们有没有玩过一种叫作拍7"的游戏?
找规律
游戏规则把从1开始的自然数中含“7”"的数称作“明7”把不含“7”
且是“7"的倍数的数称作“暗7”。从1开始轮流报数,轮到报“明7"或
“暗7"的人,不能出声,只拍一下手。
假设一起游戏的有33人,请记录经过3轮报数后拍手的数据
拍7”流程图
开台
N
<=100
立Y
"7"in str(i)
N
or i%7-0
Y
输出i
结束
“拍7”
游战算声立流藏因
确定枚举的对象、范围和条件
当数越来越大,就越难发现“明7霜暗7”,这时,
不防使用枚举算法,借助Phthonz程序快速找出想要的结果。
思考:
假如报数到100,
循环结构
1~100的的自然数
如何确定
枚举的对象?
枚举范围
判定条件
2用程序寻找
选择结构
明7
判定条件
答案
暗7
G双7筐床
(1)确定枚举的对象、范围和条件
枚举1~100的程序基本结构如下:使用什么结构?
#!/usr/bin/en python3
n=100
for i in range(1,n+1):
print(i)
(2).编写程序判断明7产”
#!/usr/bin/envpython3
n=100
for i in range(1,n+1):
if "7"in str(i):
#找出所有的明”7“,即含7的数
print("找到明7数字字",i)
(3)增加“暗7”的判定条件
“暗7”:如何判断暗7?完善程序设计
#!/usr/bin/env python3
n=100
for i in range(1,n+1):
if "7"in str(i)Or
j%7e=0:
print(找到的拍手数数:",)