枚举算法一综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NO. 1 2 3 4 7
分析1 分析2 NEXT
NO. 1 2 3 4 7
算法分析:
被涂抹处的两位数字可能是00~99之间的任意一组, 需要一一列举,一一检验。
c :计数器 ,初c←值为0 0
设变量 i :依次取值为 0,1,2,……,99
则5位数 n: 取值为 10047+i*100
判断
? nn 能m被ood5r75或7=607整除?Yes
n mod 57=0 or
N
n mod 67=0?
Y
输出 n 的值
c←c+1
i←i+1
输出c的值
结束
1、枚举算法的优点: 全面性 、准确性 缺点: 耗时
2、枚举算法的关键步骤:
① 一一列举 用循环结构来实现 ② 一一检验 用分支结构来实现
六、回家作业:
画出P23“实践体验”的流程图
例1:在一串钥匙中找出能开启某扇门的 所有钥匙
例2:读流程图,说出其功能:
开始
i←1 i<=1000? N
Y i mod 37=0? N
Y 输出 i
i←i+1
结束
开始
i←1
i<=1000? N
Y
i mod 37=0? N
Y
输出 i
i←i+1
结束
1、什么是枚举算法
根据所需解决问题的条件, 列举出各种可能的情况并逐 一进行检验,根据检验的结 果执行相应的操作,这种方 法称为枚举法。
2、设计算法:求1~ 2009之间所有同时 能被15和21整除的 数的和。
开始
su开m始←0
i←1 i<=210090? N
Y N
iiimmmoododd1523=170==a00n??d
Y
sum输求←出和sui m+i
i←i+1
输输出结出束su和m
结束
一张单据上有一个5位数的编号,其千位 数和百位数处已经变得模糊不清 ,但是 知道这个5位数是57或67的倍数。请设计 一个算法,① 找到所有满足这些条件的5位 数予以输出,②并统计这些数的个数。
流程图:
i<循=环1条00件0? N
开始
c←0
i←0
i<=99?
Y
N
Y
n←10047+i*100
一一检验 (用分支结构实现)
改变循环变量的值
n mod 57=0 or
N
n mod 67=0?
Y
输出 n 的值
c←c+1
i←i+1
相应操作
结束
输出c的值
结束
流程图:
开始
c←0
i←0
i<=99? N
Y n←10047+i*100
0,1,2,…,99
Y
n:取值为 10047+i*100
一一检验
根据判断结果执行不同处理:
n mod 57=0 or n mod 67=0?
Yes 输出 n 的值 ,c←c+1
No
(用分支结构实现)
改变循环变量的值
全部检验完毕,输出 C 的值
相应操作
结束
流 程
开始
图 参
相应操作
考 :
循环变量赋初值
n mod 67=0
No
输出 n 的值 ,,计c←数c器++11
(i 作为循环控制变量 设定循环次数为100次)
全部检验完毕,输出 C 的值
算法分析: NO. 1 2 3 4 7
流 程
开始
设置变量:
c :计数器,初值为 0
图
相应操作
参
循环变量赋初值
考
i :循环变量,依次取值为
:
i<循=环1条00件0? N
循环结构流程图:
情情况况ee为为真真?? N
Y
sstepp
循环结构的组成:
循环条件:判断 是否执行循环体的 条件。
循环体:重复执 行的步骤。
开始
ii←←11
ii<<=5?? N
Y 输出“你们真棒!"
ii←←i+11
结束
循环次数的确定
循环控制变量
初始值 终止值 循环控制变量
的值的改变
决定 了循 环的 次数
在列举的过程中既不能 遗漏,也不应重复。
开始Hale Waihona Puke Baidu
i←1
i<=1000? N
Y
i mod 37=0? N
Y
输出 i
i←i+1
2、枚举算法的关键步骤
一一列举,用循环结构来实现。
一一检验,用分支结构来实现。 不同检验结果不同处理方法。
结束
1、设计算法:输出1~ 2009之间所有同时 能被15和21整除的 数。
分析1 分析2 NEXT
NO. 1 2 3 4 7
算法分析:
被涂抹处的两位数字可能是00~99之间的任意一组, 需要一一列举,一一检验。
c :计数器 ,初c←值为0 0
设变量 i :依次取值为 0,1,2,……,99
则5位数 n: 取值为 10047+i*100
判断
? nn 能m被ood5r75或7=607整除?Yes
n mod 57=0 or
N
n mod 67=0?
Y
输出 n 的值
c←c+1
i←i+1
输出c的值
结束
1、枚举算法的优点: 全面性 、准确性 缺点: 耗时
2、枚举算法的关键步骤:
① 一一列举 用循环结构来实现 ② 一一检验 用分支结构来实现
六、回家作业:
画出P23“实践体验”的流程图
例1:在一串钥匙中找出能开启某扇门的 所有钥匙
例2:读流程图,说出其功能:
开始
i←1 i<=1000? N
Y i mod 37=0? N
Y 输出 i
i←i+1
结束
开始
i←1
i<=1000? N
Y
i mod 37=0? N
Y
输出 i
i←i+1
结束
1、什么是枚举算法
根据所需解决问题的条件, 列举出各种可能的情况并逐 一进行检验,根据检验的结 果执行相应的操作,这种方 法称为枚举法。
2、设计算法:求1~ 2009之间所有同时 能被15和21整除的 数的和。
开始
su开m始←0
i←1 i<=210090? N
Y N
iiimmmoododd1523=170==a00n??d
Y
sum输求←出和sui m+i
i←i+1
输输出结出束su和m
结束
一张单据上有一个5位数的编号,其千位 数和百位数处已经变得模糊不清 ,但是 知道这个5位数是57或67的倍数。请设计 一个算法,① 找到所有满足这些条件的5位 数予以输出,②并统计这些数的个数。
流程图:
i<循=环1条00件0? N
开始
c←0
i←0
i<=99?
Y
N
Y
n←10047+i*100
一一检验 (用分支结构实现)
改变循环变量的值
n mod 57=0 or
N
n mod 67=0?
Y
输出 n 的值
c←c+1
i←i+1
相应操作
结束
输出c的值
结束
流程图:
开始
c←0
i←0
i<=99? N
Y n←10047+i*100
0,1,2,…,99
Y
n:取值为 10047+i*100
一一检验
根据判断结果执行不同处理:
n mod 57=0 or n mod 67=0?
Yes 输出 n 的值 ,c←c+1
No
(用分支结构实现)
改变循环变量的值
全部检验完毕,输出 C 的值
相应操作
结束
流 程
开始
图 参
相应操作
考 :
循环变量赋初值
n mod 67=0
No
输出 n 的值 ,,计c←数c器++11
(i 作为循环控制变量 设定循环次数为100次)
全部检验完毕,输出 C 的值
算法分析: NO. 1 2 3 4 7
流 程
开始
设置变量:
c :计数器,初值为 0
图
相应操作
参
循环变量赋初值
考
i :循环变量,依次取值为
:
i<循=环1条00件0? N
循环结构流程图:
情情况况ee为为真真?? N
Y
sstepp
循环结构的组成:
循环条件:判断 是否执行循环体的 条件。
循环体:重复执 行的步骤。
开始
ii←←11
ii<<=5?? N
Y 输出“你们真棒!"
ii←←i+11
结束
循环次数的确定
循环控制变量
初始值 终止值 循环控制变量
的值的改变
决定 了循 环的 次数
在列举的过程中既不能 遗漏,也不应重复。
开始Hale Waihona Puke Baidu
i←1
i<=1000? N
Y
i mod 37=0? N
Y
输出 i
i←i+1
2、枚举算法的关键步骤
一一列举,用循环结构来实现。
一一检验,用分支结构来实现。 不同检验结果不同处理方法。
结束
1、设计算法:输出1~ 2009之间所有同时 能被15和21整除的 数。