25】芯片测试:有2k块芯片,已知好芯片比坏芯片多.请设计算法从其中找出一片
好芯片,说明你所用的比较次数上限.
其中:好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏.
坏芯片和其它芯片比较时,会随机的给出好或是坏。
任意拿两片芯片互相测试,则有
1)结果都为真,则说明两片都为真,或者都为假。
2)其他结果,则最少有一为假。
在任意偶数多的芯片里,如果好芯片多于坏芯片,将所有芯片两两分组,根据抽屉原理,
则有
1)必有两个好芯片分在一组。
2)同为好芯片的组数一定多于同为坏芯片的组数。
测试流程
1)将芯片两两分组,比如1和2,3和4。。。。2k-1和2k。互相测试,则必有结果同为真的
组。
2)保留结果同为真的组,丢弃其他组。必有好芯片组多于坏芯片组。(所以当只有两组或
者一组同为真时,则必为真,测试结束)
3)结果同为真的组芯片必定同好或者同坏,所以可以丢弃一半。从所有同真组中任意取出
一个丢弃另一个,组成新的测试组,继续两两分组,直到同真组只有2个或者1个测试结束
,坚持到最后的就是好芯片。
说明:同真组可能会变成奇数个,当为奇数组时,任意选一组取其中一个(假设为A),在
剩余组中各取一个来测试A,如果测试结果A为好芯片过半或者等于一半,则A为好芯片,测
试结束。否则A为坏芯片,判定A为好芯片的必为坏芯片,剔除后剩余部分形成新的测试组
,继续两两分组。。。
总的原理和淘金差不多,刚开始好的芯片多,在每次剔除芯片时一定要保证剔除的坏芯片
数量一定要多于或者等于好芯片的数量,这样就能保证在剩余的芯片中好的一定多于坏的
。当组数为奇数时采用投票制,多于半数的投票有效(等于也有效,因为好的多于坏的,
相等则被测试的一定为好的)。
因为每次最少剔除一半的芯片,所以最坏情况出现在每次只能剔除一半芯片的时候,按等
比数列递减。当有N个芯片时,测试次数为n+(n/2)+(n/4)...=2n
答题完毕.
【26】话说有十二个鸡蛋,有一个是坏的(重量与其余鸡蛋不同),现要求用天平称三次
,称出哪个鸡蛋是坏的!
12个鸡蛋分成每四个一组,A,B,C。
先把球编号1-12,
第一次,先将1-4号放在左边,5-8号放在右边。
1.如果天平平衡,则坏球在9-12号。
第二次将1-3号放在左边,9-11号放在右边。
1.如果右重则坏球在9-11号且坏球较重。
第三次将9号放在左边,10号放在右边。
1.如果右重则10号是坏球且比标准球重;
2.如果平衡则11号是坏球且比标准球重;
3.如果左重则9号是坏球且比标准球重。
2.如果平衡则坏球为12号。
第三次将1号放在左边,12号放在右边。
1.如果右重则12号是坏球且比标准球重;
2.这次不可能平衡;
3.如果左重则12号是坏球且比标准球轻。
3.如果左重则坏球在9-11号且坏球较轻。
第三次将9号放在左边,10号放在右边。
1.如果右重则9号是坏球且比标准球轻;
2.如果平衡则11号是坏球且比标准球轻;
3.如果左重则10号是坏球且比标准球轻。
2.如果左重则坏球在1-8号。
第二次将2-4号拿掉,将6-8号从右边移到左边,把9-11号放
在右边。就是说,把1,6,7,8放在左边,5,9,10,11放在右边。
1.如果右重则坏球在拿到左边的6-8号,且比标准球轻。
第三次将6号放在左边,7号放在右边。
1.如果右重则6号是坏球且比标准球轻;
2.如果平衡则8号是坏球且比标准球轻;
3.如果左重则7号是坏球且比标准球轻。
2.如果平衡则坏球在被拿掉的2-4号,且比标准球重。
第三次将2号放在左边,3号放在右边。
1.如果右重则3号是坏球且比标准球重;
2.如果平衡则4号是坏球且比标准球重;
3.如果左重则2号是坏球且比标准球重。
3.如果左重则坏球在没有被触动的1,5号。如果是1号,
则它比标准球重;如果是5号,则它比标准球轻。
第三次将1号放在左边,2号放在右边。
1.这次不可能右重。
2.如果平衡则5号是坏球且比标准球轻;
3.如果左重则1号是坏球且比标准球重
3.如果右重,则情况和2相反,同样思路即解
答题完毕。
【27】100个人回答五道试题,有81人答对第一题,91人答对第二题,85人答对第三题,7
9人答对第四题,74人答对第五题,答对三道题或三道题以上的人算及格, 那么,在这10
0人中,至少有( )人及格。
第一题不及格, 19人;
好芯片,说明你所用的比较次数上限.
其中:好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏.
坏芯片和其它芯片比较时,会随机的给出好或是坏。
任意拿两片芯片互相测试,则有
1)结果都为真,则说明两片都为真,或者都为假。
2)其他结果,则最少有一为假。
在任意偶数多的芯片里,如果好芯片多于坏芯片,将所有芯片两两分组,根据抽屉原理,
则有
1)必有两个好芯片分在一组。
2)同为好芯片的组数一定多于同为坏芯片的组数。
测试流程
1)将芯片两两分组,比如1和2,3和4。。。。2k-1和2k。互相测试,则必有结果同为真的
组。
2)保留结果同为真的组,丢弃其他组。必有好芯片组多于坏芯片组。(所以当只有两组或
者一组同为真时,则必为真,测试结束)
3)结果同为真的组芯片必定同好或者同坏,所以可以丢弃一半。从所有同真组中任意取出
一个丢弃另一个,组成新的测试组,继续两两分组,直到同真组只有2个或者1个测试结束
,坚持到最后的就是好芯片。
说明:同真组可能会变成奇数个,当为奇数组时,任意选一组取其中一个(假设为A),在
剩余组中各取一个来测试A,如果测试结果A为好芯片过半或者等于一半,则A为好芯片,测
试结束。否则A为坏芯片,判定A为好芯片的必为坏芯片,剔除后剩余部分形成新的测试组
,继续两两分组。。。
总的原理和淘金差不多,刚开始好的芯片多,在每次剔除芯片时一定要保证剔除的坏芯片
数量一定要多于或者等于好芯片的数量,这样就能保证在剩余的芯片中好的一定多于坏的
。当组数为奇数时采用投票制,多于半数的投票有效(等于也有效,因为好的多于坏的,
相等则被测试的一定为好的)。
因为每次最少剔除一半的芯片,所以最坏情况出现在每次只能剔除一半芯片的时候,按等
比数列递减。当有N个芯片时,测试次数为n+(n/2)+(n/4)...=2n
答题完毕.
【26】话说有十二个鸡蛋,有一个是坏的(重量与其余鸡蛋不同),现要求用天平称三次
,称出哪个鸡蛋是坏的!
12个鸡蛋分成每四个一组,A,B,C。
先把球编号1-12,
第一次,先将1-4号放在左边,5-8号放在右边。
1.如果天平平衡,则坏球在9-12号。
第二次将1-3号放在左边,9-11号放在右边。
1.如果右重则坏球在9-11号且坏球较重。
第三次将9号放在左边,10号放在右边。
1.如果右重则10号是坏球且比标准球重;
2.如果平衡则11号是坏球且比标准球重;
3.如果左重则9号是坏球且比标准球重。
2.如果平衡则坏球为12号。
第三次将1号放在左边,12号放在右边。
1.如果右重则12号是坏球且比标准球重;
2.这次不可能平衡;
3.如果左重则12号是坏球且比标准球轻。
3.如果左重则坏球在9-11号且坏球较轻。
第三次将9号放在左边,10号放在右边。
1.如果右重则9号是坏球且比标准球轻;
2.如果平衡则11号是坏球且比标准球轻;
3.如果左重则10号是坏球且比标准球轻。
2.如果左重则坏球在1-8号。
第二次将2-4号拿掉,将6-8号从右边移到左边,把9-11号放
在右边。就是说,把1,6,7,8放在左边,5,9,10,11放在右边。
1.如果右重则坏球在拿到左边的6-8号,且比标准球轻。
第三次将6号放在左边,7号放在右边。
1.如果右重则6号是坏球且比标准球轻;
2.如果平衡则8号是坏球且比标准球轻;
3.如果左重则7号是坏球且比标准球轻。
2.如果平衡则坏球在被拿掉的2-4号,且比标准球重。
第三次将2号放在左边,3号放在右边。
1.如果右重则3号是坏球且比标准球重;
2.如果平衡则4号是坏球且比标准球重;
3.如果左重则2号是坏球且比标准球重。
3.如果左重则坏球在没有被触动的1,5号。如果是1号,
则它比标准球重;如果是5号,则它比标准球轻。
第三次将1号放在左边,2号放在右边。
1.这次不可能右重。
2.如果平衡则5号是坏球且比标准球轻;
3.如果左重则1号是坏球且比标准球重
3.如果右重,则情况和2相反,同样思路即解
答题完毕。
【27】100个人回答五道试题,有81人答对第一题,91人答对第二题,85人答对第三题,7
9人答对第四题,74人答对第五题,答对三道题或三道题以上的人算及格, 那么,在这10
0人中,至少有( )人及格。
第一题不及格, 19人;