其他分享
首页 > 其他分享> > 【笔试题】有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?

【笔试题】有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?

作者:互联网

【笔试题】有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?


文章目录


1、 题目描述

  现有1000瓶药水其中有一瓶是毒药水,现需要提供多少只小白鼠才能检测那一瓶毒药水?(使用尽可能少的实验小白鼠)


2、 分析思路

  因为2^10=1024,故提供10只小白鼠就可以检测出那一瓶毒药水。
  首先对1000瓶药水进行编号1~1000,10只小白鼠进行标记1至10号,对10只小白鼠分别灌入药水,1号药水灌给一号小白鼠,2号药水灌给二号小白鼠,3号药水灌给一、二号小白鼠,4号药水灌给三号小白鼠……以此类推。
  也就是说,把1000瓶药水转换成二进制,对应的二进制位为1表示给小白鼠喝,为0表示不给小白鼠喝。根据小白鼠的存活状态,转换成十进制来判断具体是哪瓶药水是毒药水。

瓶子二进制编码小白鼠
100 0000 00011
200 0000 00102
300 0000 00111、2
400 0000 01003
500 0000 01011、3
50001 1111 01003、5、6、7、8、9
50101 1111 01011、3、5、6、7、8、9
99911 1110 01111、2、3、6、7、8、9、10
100011 1110 10004、6、7、8、9、10

  通过观察一至十号小白鼠哪只或者哪几只死亡就可以知道是哪瓶是毒药水了。假设1、2号小白鼠死亡,则代表3号瓶的药水是毒药水;假设1、3、5、6、7、8、9号小白鼠都死亡了,则说明编号为501的药水 是毒药水。


3、开拓思维

  已知有m瓶药水,那么需要 x x x 只小白鼠就可以检测出那一瓶毒药水。只需满足条件: 2 x ≥ m 2^x\geq m 2x≥m 。


Alt

                                     发散思维,注重积累!

标签:10,药水,0000,小白鼠,毒药,1000
来源: https://blog.csdn.net/Sunnyside_/article/details/115022684