算法设计与分析:芯片测试问题、选择问题详解.pdfVIP

  • 7
  • 0
  • 约2.76千字
  • 约 3页
  • 2023-08-25 发布于上海
  • 举报

算法设计与分析:芯片测试问题、选择问题详解.pdf

算法设计与分析:芯⽚测试问题、选择问题详解 芯⽚测试问题 有n⽚芯⽚,已知其中好芯⽚⽐坏芯⽚⾄少多1⽚。现在需要通过测试从中找出1⽚好芯⽚。测试的⽅法是:将2⽚芯⽚放到测试台上,2⽚ 芯⽚互相测试并报告测试结果:”好”或者”坏”。假定好芯⽚的报告是正确的,坏芯⽚的报告是不可靠的(可能是对的,也可能是错的)。 请设计⼀个算法,使⽤最少的测试次数来找出1⽚好芯⽚。 由于好芯⽚⾄少⽐坏芯⽚多1⽚,对1⽚芯⽚来说,如果有⌊n/2⌋⽚芯⽚都报告它是”好的”,那么这⽚芯⽚⼀定是好的 (因为如果该芯⽚的 所有报告都是坏芯⽚产⽣的,则说明已经有⌊n/2⌋个坏芯⽚,⼜因为好芯⽚⽐坏芯⽚多,所以当前芯⽚⼀定是好的;⽽如果并⾮所有报告都 是坏芯⽚产⽣的,那么有些报告是好芯⽚产⽣的,所以当前芯⽚⼀定是好的)。⼀个蛮⼒算法就是任取1⽚芯⽚,然后⽤其余所有芯⽚来测 试它,直到找到1⽚好芯⽚为⽌。这个算法最坏情况下Θ(n^2)次测试。 下⾯尝试⼀下分治策略。 初始的想法就是:将n⽚芯⽚两两⼀组分成⌊n/2⌋组,每组测试1次。就像体育⽐赛的淘汰赛⼀样,通过第⼀轮的⌊n/2⌋次测试淘汰⼀部分芯 ⽚,剩下的芯⽚构成⼀个规模较⼩的⼦问题进⼊第⼆轮。如果测试的芯⽚不超过3⽚(即⼦问题规模⼩于等于3),并且好芯⽚⽐坏芯⽚⾄少多 1⽚,那么只要测试1次就可以找出好芯⽚

文档评论(0)

1亿VIP精品文档

相关文档