内容正文:
第3课 算法设计
游戏导入
尽可能多的罗列出24点的情况
解决上述情况,需要借助经典的算法思想,解析法、枚举法等。
选择算法思想
枚举法,是有序地尝试每一种可能的解,如果满足正确解的条件就采纳,否则继续枚举,做到不遗漏、不重复。
生活中的枚举法应用有哪些?
钥匙开门,限制输入密码次数,等等
确定算法框架
根据这个计算模型,使用枚举法解决“鸡兔同笼”问题,试想枚举对象是鸡,那么此时两个关键“枚举范围”和“正确解的判断条件”分别是?
0≤ji≤35
ji*2+tu*4=94
确定算法框架
鸡的只数 ji=0 …… ji=23 …… ji=35
兔的只数 tu=35-ji
(35) …… tu=35-ji
(12) …… tu=35-ji
(0)
总脚数 ji*2+tu*4
(140) …… ji*2+tu*4
(94) …… ji*2+tu*4
(70)
是否满足正确解条件? × …… √
输出鸡兔只数 …… ×
开始 继续枚举
ji+1 …… 继续枚举
ji+1 …… 结束
有重复的部分(循环体),也有重复次数(35次),所以可以使用次数循环(ji≤35)来表示,即“循环结构”;其中每一个循环体中还含有一个“是否满足正确解条件(ji*2+tu*4=94)”的判断,所以可以使用“分支结构”表示。因此,是在一个大循环结构中,嵌套了一个分支结构,其余的步骤按照前后用顺序结构表示即可。
描述算法
1. 明确输入、输出
2. 流程图描算法
根据设计好的算法框架,用流程图将算法完整地描述出来。(在互动练习中完成)
交流分享,总结提升
“鸡兔同笼”问题在一定范围内寻找正确解,可以使用枚举法。合理地选择经典算法,可以为具体问题的解决设计出更加精妙的方法。
谢谢聆听!
INTERNET OF THINGS
$$