算法题--答案仅供参考

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人;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值