逻辑算法题

题目:有1000瓶水,其中一瓶水是有毒的,喝下后24小时后才会死,现在用小白鼠来测试哪一瓶水有毒,至少需要用多少只小白鼠才能测出哪一瓶是有毒的水(需要24小时后,立马出结果)

答案:10位二进制数可表示1024个数字>1000

           10位二进制数字,相当于10个位置,

           把10只老鼠放到如下10个位置上

把10只老鼠编成如下编号:

编号 :0000000001 第1只老鼠编号

编号 :0000000010 第2只老鼠编号

编号 :0000000100 第3只老鼠编号

编号 :0000001000 第4只老鼠编号

编号 :0000010000 第5只老鼠编号 

编号 :0000100000 第6只老鼠编号 

编号 :0001000000 第7只老鼠编号 

编号 :0010000000 第8只老鼠编号 

编号 :0100000000 第9只老鼠编号

编号 :1000000000 第10只老鼠编号

因为这10只老鼠的编号组合起来可以代表1024个数字,

所以 可以把1000瓶水,用上面的10只老鼠的编号来组合:

比如:从右往左看

1000100100

相当于:站队的有第3只老鼠,第6只老鼠 ,第10只老鼠,这样就代表了一个瓶子的编号。

1000瓶水,相当于有1000个这样二进制的对应编号,都有对应的老鼠去组合编号。

假如:下面编号的水有毒:

0110101010

那就有第2只老鼠,第4只老鼠,第6只老鼠,第8只老鼠,第9只老鼠去喝这个编号有毒的水,

喝以后,24小时后这个编号位置上站的老鼠就会死亡,把编列组合的编号换算成10进制数就得到有毒水的编号:(左边为高位,右边为低位)

       =256+128+32+8+4

      =384

则编号为384号的水有毒。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值