内容正文:
五上U3 生活中常见的算法思想
X老师
3-2棋盘覆盖中的分治
3-1奖品购买中的枚举
3-2棋盘覆盖中的分治
3-3棋子移动中的递推
3-4信息安全中的加密
目
录
CONTENTS
01
什么是分治算法
分治算法排序
02
任务驱动
在迎新年活动中,同学们运用算法思想参与各种益智游戏,轻松完成了游戏任务。
讨论:这些益智游戏中蕴藏着什么算法思想呢?
Part One
01
什么是分治算法
4x4棋盘覆盖游戏
游戏规则:
1个由4×4个方格组成的棋盘,每次游戏前,在随机位置确定一个方格为特殊方格
现将以上L形骨牌覆盖除特殊方格外的所有方格,且方格之间不得重叠。
思考如何进行骨牌覆盖?
覆盖策略:只要保证每个2×2小棋盘交界位置均有同一个L形骨牌覆盖,剩余交界位置未覆盖的小棋盘中有特殊方格,即可完成整个覆盖任务
4x4棋盘覆盖游戏
将4×4棋盘看成4个2×2的小棋盘
尝试用余下的4个
L形骨牌覆盖棋盘
如果棋盘变为8×8,就需要用更多个L形骨牌进行覆盖,如何完成游戏?
8x8棋盘覆盖游戏
特殊方格
4x4棋盘1
4x4棋盘4
4x4棋盘3
4x4棋盘2
第二步:进行每个4×4的棋盘的覆盖(相当于“每个棋盘中均有一个特殊方格”)
同样延续4×4的棋盘的覆盖策略
第一步:确定交界处L形骨牌放置位置
体验4x4棋盘
棋盘覆盖模拟游戏
运行“棋盘覆盖游戏”模拟程序
体验8x8棋盘
分治算法
分治算法
分解
求解
将一个大问题分解为若干个小问题
最终实现大问题的求解
小问题之间既独立又与大问题性质相同
逐一解决小问题
Part Two
02
分治算法排序
分治算法排序
只分治,不排序
只排序
将数列2,5,1,7,10,6,9,4,8,3按从小到大的顺序排列。运用分治算法思想进行排序,请将右图补充完整。
6,9,4,8,3
6,9,4
8,3
6,9
4
8
3
6
9
3,8
6,9
4,6,9
3,4,6,8,9
提高排序速度,数据量越大,效果越明显。
分治排序策略:将10个数字逐级拆分成2个数字之间的比较,比较完成后再逐渐合并成多个至10个数字
分治
排序
挑战:羽毛球流水赛
迎新年活动中包括一场为期7天的羽毛球比赛,共8位选手参加。他们彼此之间都要进行一场比赛,且每位选手每天只能进行一场。尝试运用分治算法思想,编排赛程表。
分治算法排序
选手编号 对手编号
第一天 第二天 第三天 第四天 第五天 第六天 第七天
①
②
③
④
⑤
⑥
⑦
⑧
挑战:羽毛球流水赛
分治算法排序
选手编号 对手编号
第一天 第二天 第三天 第四天 第五天 第六天 第七天
① ②
② ①
③ ④
④ ③
⑤ ⑥
⑥ ⑤
⑦ ⑧
⑧ ⑦
组A:①②③④
组B:⑤⑥⑦⑧
组内比赛
组外比赛
③④
①②
⑦⑧⑤⑥
④③
②①
⑧⑦⑥⑤
⑤⑥⑦⑧
⑥⑦⑧⑤
⑦⑧⑤⑥
⑧⑤⑥⑦
①②③④
④①②③
③④①②
②③④①
分治(组内/组外比赛)
+
循环流转
分治思想是人类智慧的结晶。
早在2000多年前的军事著作《孙子兵法》中就提出“凡治众如治寡,分数是也”的理念,即通过分层管理的方式,将庞大军队划分成若干层级,每个层级只需管理少数个体,就能实现对整个军队的有效指挥。
秦始皇统一六国后推行的郡县制,正是这种思想的典型应用——将全国划分为36个郡,通过分级管理实现中央集权。
分治思想应用
寻找没有消磁的物品
分治思想应用
一天,小明去超市购买了很多物品,粗心的售货员忘记将其中的一件物品消磁。这时,如何才能比较高效地判定哪一件物品没有消磁呢?
寻找不合格货箱
分治思想应用
在一批货物装箱过程中,因工人的失误,有一个货箱中少装了一件货物。因货箱已封箱,重新开封,费时费力。为了不影响发货,如何快速寻找到少装了,货物的箱子呢?
1.问题规模缩小到一定的程度就可以容易地解决。
2.问题可以分解为若干个规模较小的相同问题。
3.分解出的子问题的解可以合并为该问题的解。
4.分解出的各个子问题是相互独立的。
称重
轻
轻
轻
X老师
希望本节课有所收获
五上U3 生活中常见的算法思想
$