a) 若所有坏芯片检测到怀芯片都报告好,检测到好芯片都报告坏,则坏芯片组内部互相检测均为好,检测好芯片组均为坏,其行为与好芯片组完全一样,则不能区分好坏组
b) 我们先假设芯片总数是偶数,则将所有芯片两两一组,每组进行一次测试,若均报告好,则从中取出一个芯片,否则不取任何芯片。则操作后问题规模至少下降一半。
由于好芯片多于坏芯片,所以好好组合多于坏坏组合,故挑选后的芯片好芯片多于一半。
若芯片总数是奇数,则取出一片记为x,其他的按照偶数情况处理,然后处理x的取舍。我们考虑之前取出来的芯片总数:
若为偶数,即好好组和坏坏组之和为偶数。我们此时选择x进入后续的检测。若好好组=坏坏组,则x一定为好,选择后好芯片多于一半;若好好组>坏坏组,则即使x为坏,也能保证之后好芯片多于一半。
若为奇数,则好好组>坏坏组,否则好芯片不可能多于一半,此时不选择x已经能保证之后好芯片多于一半
c) T(n)=T(n/2)+n/2,由主定理得T=Θ(n)
4-6
本文介绍了一种通过两两芯片对比测试来逐步筛选出好芯片的方法。该方法利用了好芯片数量多于坏芯片的特点,通过递归减少问题规模,最终使得挑选出的好芯片数量超过总数的一半。对于芯片总数为奇数的情况也给出了处理策略。

被折叠的 条评论
为什么被折叠?



