- 4
- 0
- 约1.98千字
- 约 32页
- 2018-05-12 发布于浙江
- 举报
算法合集之《一类称球问题的解法》汇
一类称球问题的解法
问题的提出
给定N个球
有个比标准球重的次品混入其中
你有一架天平,用最少的次数找出这个次品。
N = 3
①是次品
②是次品
③是次品
N=3时称1次就可以找出次品
N = 9
次品在A中
次品在B中
A
B
通过一次称量,可以把次品可能存在的范围从9个,缩小到3个
N = 3的时候一次就能称出次品
N = 9时称2次
次品在C中
A
B
更一般的情况
N = 3k
A
B
C
更一般的情况
次品在A中
次品在B中
次品在C中
范围缩小到原来的1/3
更一般的情况
n = 3k+1, n = 3k+2和n=3k类似,也是均分成三堆
每次称量把范围大致缩小到原来的1/3
因此:从n个球中找次品至多要称[log3n]次。([]统一表示取上整)
判定树
[log3n]无疑是可行解。
为什么三分?
因为天平只有三种可能:左偏、右偏、平衡
判定树
叶子代表结果
非叶子代表一次称量
每个非叶子节点都有三个孩子,表示天平左偏、右偏、平衡
判定树
判定树的深度就是称量次数
一个有意义的判定树至少n个叶子节点
判定树
N个叶子的三叉树的深度h = [log3n]
[log3n]是最优解
小结
引进了有力工具:判定树。将主观的直觉严谨化。
三分法是解决这类问题的根本着眼点。
三分时必须充分的均匀
分配的均匀性
N个叶子的三叉树的深度h = [log3n]
深度很大,远
原创力文档

文档评论(0)