内容正文:
python—枚举算法
1
枚举算法也称穷举法
基本思想:把问题所有的可能解一一列举出来,并判断每个列举的可能解是否为正确的解。
步骤:
(1)确定枚举对象、范围和判定条件。
(2)逐一枚举可能的解,并验证每个解是否为问题的解
枚举结构:循环+判断语句
3
哪些可以用枚举法?
任务一:“百钱买百鸡”
鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;
百钱买百鸡,问翁,母,雏各几何?
5
问题分析
(1)确定枚举的对象x,y,z
(2)划定每个对象的范围
0=<x<=20,0=<y<=33,0=<z<=100
(3)列出判断条件
5x+3y+1/3(100-x-y)=100
6
算法流程图
5*x+3*y+(100-x-y)/3==100
print(x,y,100-x-y)
编程与调试
count =0 #循环计数
for x in range(21)
for y in range(33)
count=count+1
if 5*x+3*y+(100-x-y)/3==100
print('公鸡:',x,'母鸡:',y,'小鸡:',100-x-y)
print('循环次数:',count)
8
任务二:“鸡兔同笼”
鸡兔同笼,有20个头,54条腿,鸡兔各有多少只?
9
70%
65%
75%
100%
1.程序设计的一般过程
2.枚举算法的步骤
3.枚举算法的优缺点
小结
10
枚举算法的优点
1.直观,易于理解:枚举算法是现实生活中问题的“直译”
2.容易证明:枚举算法是穷举所有状态的
11
枚举算法的缺点
1.效率比较低:算法的效率取决于状态的数量以及单个状态枚举的代价
2.运算量过大:当问题的规模变大的时候,循环的阶数越大,执行速度越慢
12
THANKS
13
$$