(
课件网) 第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