【面试】智力题

一、题目

1、1000瓶药水,1瓶有毒药,几只小白鼠能够找出?

答案:

Step 1、对            1234567...1000瓶水进行编号,并用
Step 2、用二进制表示:00 0000 0001, (1)
                00 0000 0010, (2)
                00 0000 0011, (3)
                00 0000 0100, (4)
                00 0000 0101, (5)
                00 0000 0110, (6)
                00 0000 0111, (7)
                ...
                ...
                ...
                11 1110 1000. (1000)
  其中第一个二进制位是1的给1号老鼠喝, 如00 0000 0001, (1)
                                       00 0000 0011, (3)
                                       00 0000 0101, (5)
                                       00 0000 0111, (7)
  同理第二个二进制位是1的给2号老鼠喝.

  再换个角度说明,0010010011给第1258只老鼠喝。

Step 3、如果第5910只老鼠死亡,死亡标志位是1,即0000 1000 11 = 64+2+1=67,即第67杯水有毒。


举例(拿简单的再说明下同样道理):
  000=0
  001=1
  010=2
  011=3
  100=4
  101=5
  110=6
  111=7

  1357号瓶子的药混合给鼠1吃;
  2367号瓶子混合混合给鼠2吃;
  4567号瓶子混合混合给鼠3吃。
  死鼠相应位标为1。如鼠13死,2活,那就是101=5号瓶子有毒。

二、参考

1、1000瓶药水,1瓶有毒药,几只小白鼠能够找出?
2、有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24
3、奇妙算法之毒药问题
4、试毒水(阿里巴巴腾讯搜狐笔试智力题)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值