(共33张PPT)
枚举算法
enumeration algorithm
复习旧知
程序的基本结构:
顺序结构
循环结构
分支结构
单分支if…[else]
次数循环 for…in
当循环 while
多分支if…elif…[else]
函数
range(初值,终止,步长)
控制循环取值范围。
如:range(1,5),range(5)
str(表达式)
将表达式转化为字符串。
如:str(3),str(i)
复习旧知
逻辑运算符
or : 或,或者 and: 与,并且。
A B A or B
0 0 0
0 1 1
1 0 1
1 1 1
A B A and B
0 0 0
0 1 0
1 0 0
1 1 1
复习旧知
关系运算符
in:x in y
x是y的成员。
算术运算符
%:求余
如:i%3==0
复习旧知
课前小游戏
游戏规则
从1开始轮流报数,轮到报“明7”或“暗7”的人,不能出声,只拍一下手。
明7:从1开始的自然数中含“7”的数;
暗7:不含“7”且是“7”的倍数的数。
范围越大,越困难,引入枚举算法,找出想要的结果
“拍7”小游戏
枚举算法(穷举)
就是将问题的所有可能答案都一一列举出来,然后根据条件逐个判断每个答案是否合适,保留合适的,丢弃不合适的,做到不遗漏不重复。
clap7小程序
程序说明:
根据“拍7”规则,把1—100内的“明7”或“暗7”的符合条件的自然数枚举出来。
编程找答案
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
要“求” 的对象
所有可能的解
枚举算法
开始
结束
枚举值在给定范围内吗?
枚举值符合给定条件吗?
取下一个枚举值
输出一个枚举值
否
否
是
是
循环结构
分支结构
枚举算法
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
未知数
变量x
1—100的自然数
for循环
明7:有“7”
“7” in str(x)
Step 1:
开始
结束
i在1—100内
“7” in str(x)
x取列表中下一个整数值
输出x
否
否
是
是
枚举算法流程图
使用枚举算法之前首先要确定:
1.枚举对象 设置未知数 变量i
2.枚举范围 1—100的自然数 for循环
3.判断条件 明7:有“7” “7” in str(x)
or
暗7:被7整除
i%7==0
Step 2:
开始
结束
i在1—100内
“7” in str(x) or i%7==0
x取列表中下一个整数值
拍手数:x
否
否
是
是
枚举算法流程图
如何把1—100自然数中,既符合“明7”,又符合“暗7”的数枚举出来?
实例拓展
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
支撑语句
循环结构语句
分支结构语句
归 纳
鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?
——《算经》张丘建
百钱买百鸡
枚举算法(穷举)
就是将问题的所有可能答案都一一列举出来,然后根据条件逐个判断每个答案是否合适,保留合适的,丢弃不合适的,做到不遗漏不重复。
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
要“求” 的对象
所有可能的解
枚举算法
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
设公鸡x只、母鸡y只,小鸡z只。
0
0
0
and
=100
枚举算法
程序填空
循环次数
百钱买百鸡
开始
结束
枚举值符合给定条件吗?
循环次数:
21*34*101
21
34
101
枚举算法流程图
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
设公鸡x只、母鸡y只,小鸡z只。
0
0
0
z=100
优化算法
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
设公鸡x只、母鸡y只,小鸡z只。
0
0
0
(100--)=100
优化算法
优化程序
循环次数:
21*34
优化算法
使用枚举算法之前首先要确定:
1.枚举对象
2.枚举范围
3.判断条件
要“求” 的对象
所有可能的解
支撑语句
循环结构语句
分支结构语句
总 结
算 法
能够对一定规范的输入,在有限时间内获得所要求的输出。
随着科技的迅猛发展,算法已经完全遍布我们的生活当中。
算 法
算 法
二分查找
快速排序
递归算法
广度优先搜索
动态规划
枚举算法
enumeration algorithm
什么是算法
时间复杂度
空间复杂度