首页 > 试题广场 >

有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴之后一小时会死。

[单选题]
有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴之后一小时会死。请问最少用() 只小白鼠,在1小时内一定可以找出至少14瓶无毒的水?
  • 1
  • 3
  • 4
  • 16
推荐
    B 3只小鼠
具体步骤:
     将16瓶水两瓶为一组,组号标为A1-A8,三只小白鼠分别标号为b1、b2、b3,A1组水只让b1喝,A2组只让b2喝,A3组只让b3喝,A4组让b1、b2喝,A5组让b1、b3喝,A6组让b2、b3喝,A7组让b1、b2、b3喝,A8组不喝。如果只有b1死了,b2、b3都活着,那么有毒的水在A1组里,剩下的14瓶无毒;如果只有b2死了,b1、b3都活着,则A2组有毒;如果只有b3死了,b1、b2都活着,则A3组有毒;如果b1、b2死,b3活,则A4组有毒;如果b1、b3死,b2活,则A5有毒;如果b2、b3死,b1活,则A6有毒;如果三只全死,A7组有毒;如果三只全活,A8有毒。
编辑于 2015-02-05 12:01:00 回复(1)
题目理解:在题目条件下,总共有(M=16)瓶水最少用X只白鼠,找出至多(N=16-14)瓶水中一定有一瓶水有毒。
采用N分法解决该问题。
N=2时:

找出M/N^x=N,x即为目标白鼠数量。上述还可以在分下去。
每一只老鼠每次喝(M/N)瓶水(由每一堆数量/N组成)解释:第一只老鼠喝第一次分的第一堆/N瓶,第二次则左边一堆/N+右边一堆/N,..
如果N=4,即为四分法,原理相同......看哪只老鼠死了,即可分析得出哪一小堆即为有毒的那一堆,反之得到题目答案
编辑于 2017-07-18 19:15:54 回复(0)
看了这题,我开始也是错的,其实这题考核的是概率论的组合原理,其实本题等价于区分8瓶药水哪瓶有毒(本题是16瓶找出两瓶带毒的组合),C(3,1)+C(3,2)+C(3,3)=7种组合,也即使是3个小白鼠可以判定7种情况是否有毒,所以就能找出8种里面的那个有毒,按组合如下图分组(A B C是3个小白鼠,1~7是药水组合)
    小白鼠 A        小白鼠 B        小白鼠C
         1           2            3
         4           4            5
         5           6            6
         7           7            7

这样就能判断7瓶药水状态了
编辑于 2015-09-25 13:21:48 回复(0)

如图所示,将16瓶水分别标号为1~16,2瓶为一组,分为8组,为:A1是第1、2瓶水,以此类推……A8为第15、16瓶水

图中三个圆圈分别为3个小白鼠

小白鼠1喝   A1、A4、A5、A7
小白鼠2喝   A2、A4、A6、A7
小白鼠3喝   A3、A5、A6、A7

若仅小白鼠1死,则有毒水在A1组
若仅小白鼠2死,则有毒水在A2组
若仅小白鼠3死,则有毒水在A3组
若仅小白鼠1、2死,则有毒水在A4组
若仅小白鼠1、3死,则有毒水在A5组
若仅小白鼠2、3死,则有毒水在A6组
小白鼠都死,则有毒水在A7组
小白鼠都不死,则有毒水在A8组

综上所述,只需3只小白鼠即可在1小时内一定可以找出至少14瓶无毒的水
发表于 2016-01-09 10:57:20 回复(15)
将16瓶药水用二进制表示,为0000,0001,0010....1111, 取3只小白鼠,让第一只喝最低位为1的药水(xxx1即1,3,5,7,9,11,13,15), 让第二只喝次最低位为1的药水(xx1x即2,3,6,7,10,11,14,15),让第三只喝第三位为1的药水(x1xx即4,5,6,7,12,13,14,15)。。如果三只小白鼠都活着(111),证明这14瓶药水无毒,有毒在0和8号瓶中;小白鼠状态为000(都死),有毒在7或者15号药水中;状态为(001) 有毒在4或者12号药水中。依次类推。。
发表于 2015-08-11 14:04:46 回复(4)
  将16瓶水两瓶为一组,组号标为A000-A111:显然用三只老鼠就可以判断是哪一组有毒了(3位二进制可以表达8个信号),即14瓶无毒
发表于 2015-09-29 19:52:25 回复(2)
鼠1喝A1组8瓶,鼠2喝B1、B3组,鼠3喝C1、C3、C5、C7组。
喝的时候同时喝,分析的时候挨个来。鼠1的死活可以排除掉一组A无毒,就可以说把一半树全部屏蔽掉不用在管,剩下的是一个相类似的小树,按刚才方法继续分析就可以。
比如鼠1死了,那么A1有毒,A2整颗树都是确定无毒的。接下来鼠2没死的话,那么毒在B2树中,B1整棵树屏蔽掉。鼠3死了的话就在C3中。

发表于 2017-12-05 21:49:58 回复(0)
我觉得可以这么做呀,让一只小白鼠每隔一分钟喝一瓶水中的一滴,然后看小白鼠是在一个小时后第几分钟死掉的,这样只需要一只不就可以了?
发表于 2017-08-26 11:03:33 回复(10)
将1-16瓶水两两分一组,共8组。此时,用二进制给8组编号(001---1000)。选三只白鼠,a1,a2,a3,让a1喝组编号最低位为1的水,让a2喝组编号第二位为1的水。让a3喝组编号第三位为1的水。设白鼠的状态1为死亡,0为活着。所以对应三只白鼠的状态为(000-111)(编排顺序为a3a2a1 )。所以若状态为0,则三只白鼠都活着,第8组水有毒,其他14瓶无毒。若状态为001,则第1组水有毒,以此类推,状态为111为第7组水有毒,其实就是一个3-8译码器。
发表于 2016-10-06 19:11:22 回复(0)
LV8头像 LV8
采用二进制处理, 二分处理
死一只      验证 8瓶
再死一只  验证 4瓶
再死一只  验证 2瓶

3只就够 14瓶了
发表于 2015-09-06 11:08:08 回复(2)
我还以为是脑筋急转弯。。。喝一滴要一个小时死,喝一大口就会马上死,所以一只就够了233333
发表于 2017-03-03 16:02:31 回复(3)
啊,看了答案之后倒推,16只找出14只,剩下两只捆绑在一起不用区分,则可按2进行分组,16瓶分为8组。
8组且非+即-,那么可使用二进制进行表示,8种情况3位二进制即可,所以需要三只。
同理,如果30找至少25瓶的话,那么就可以按5分组,分为6组,6种情况也用3位二进制即可。
(我也不知道对不对)
发表于 2020-03-28 17:50:56 回复(0)
哪里的笔试题,很经典!
发表于 2015-10-09 10:01:42 回复(0)
将16瓶水分为AB两组,各八瓶。小白鼠1喝A组,小白鼠2喝B组。若1死亡,则2不死。那有毒的水就在A组里面。再将A组8瓶水分为CD两组,各四瓶。小白鼠2喝C组,小白鼠3喝D组。若小白鼠2死亡,则有毒的水在C组里面。小白鼠3存活。再将C组分为EF两组,各2瓶。小白鼠3喝其中一组,死亡,则代表剩下的一组两瓶水则无毒。若不死亡,则证明该组的两瓶水无毒。结合前面两组实验,可得出14瓶无毒的水
发表于 2023-07-14 16:13:33 回复(0)
额,我想着是一次喝个小半瓶,10分钟就知道死没死,所以一只就够了
发表于 2022-03-08 22:11:27 回复(0)
16瓶,找至少14瓶无毒。题目其实是8瓶找1瓶有毒。
拓展这位大佬的回答:
n只老鼠,可能死0,1,……,n只。有2的n次方种可能。组合数求和 = (1+x)^n  。x取1,得2^n
可以找出2^n 瓶中的1瓶毒药。



编辑于 2021-05-02 10:38:17 回复(0)
具体步骤:      将16瓶水两瓶为一组,组号标为A1-A8,三只小白鼠分别标号为b1、b2、b3,A1组水只让b1喝,A2组只让b2喝,A3组只让b3喝,A4组让b1、b2喝,A5组让b1、b3喝,A6组让b2、b3喝,A7组让b1、b2、b3喝,A8组不喝。如果只有b1死了,b2、b3都活着,那么有毒的水在A1组里,剩下的14瓶无毒;如果只有b2死了,b1、b3都活着,则A2组有毒;如果只有b3死了,b1、b2都活着,则A3组有毒;如果b1、b2死,b3活,则A4组有毒;如果b1、b3死,b2活,则A5有毒;如果b2、b3死,b1活,则A6有毒;如果三只全死,A7组有毒;如果三只全活,A8有毒。
发表于 2021-03-24 21:52:16 回复(0)
// 换一种,16个,既然是要14瓶,那就可以2瓶作为一组,用二进制表示这8组: // 001 010 011 100 101 110 111 1000 // 三只老鼠,对应取上面8组,每组的数值为1的药。 // 这样第A只吃4,5,6,7组; // 第B只吃2,3,6,7组 // 第C只吃1,3,5,7组 // A独死,则4毒;B独死,则2毒;C独死,则1毒;就是还是一个三个集合交叉的问题。 // ABC都死,那就是7;AB死,6毒;AC死,5毒;BC死,3毒;都没死,8毒
发表于 2021-03-24 20:09:51 回复(0)
用二进制更好理解
发表于 2020-11-30 09:50:26 回复(0)
一开始我的答案是4 想的比较简单。结合最后14瓶,联想到用2瓶为一组。那么我们可以假设药标记为b0-b15。 a鼠喝b0-b5,b鼠喝b4-b9,c鼠喝b8-b13,d鼠喝b12-b0,这样子,如果为单只老鼠死亡就是只有被1只老鼠喝的2瓶,如果死两只那么就是那两只公共喝的2瓶。 其实这样可以再大胆点,为何不用3只老鼠和喝用一瓶,还是按之前的思路,16瓶分成8组。3只老鼠可以看做3位2进制,正好对应8种组合。第一组001相当于c鼠喝,第二组010即b鼠喝,第三组011用bc鼠喝,第四组100用a鼠喝,一次类推,每组对应一个老鼠3位2进制组合,最终死去的老鼠组合可以对应一组药。 类似3-8译码器。
发表于 2020-11-29 14:58:12 回复(0)
将16瓶水两瓶为一组,组号标为A1-A8 ,三只小白鼠分别标号为b1、b2、b3。
b1喝A1~A4
b2喝A1~A2,A7~A8
b3喝A1,A3,A5,A7
A1有毒 b1,b2,b3全死
A2有毒 b1,b2死
A3有毒 b1,b3全死
............
编辑于 2020-07-15 16:41:47 回复(0)