首页 > 试题广场 >

8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你

[单选题]
8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要()人测试?
  • 2
  • 3
  • 4
  • 6
本题的解题思路是二进制:
将毒酒编号为0~7,有三个人ABC根据每一个值转化的二进制:
十进制:  0   1   2   3   4   5   6   7
二进制:000 001 010 011 100 101 110 111
A和对应二进制从左往右数第一位为1的,B喝所有第二位为1的,C喝所有第三位为1的
根据ABC中毒情况还原二进制,此题得解。


发表于 2015-09-07 03:04:09 回复(21)
以后再碰到类似的题.都是至少需要log2(n)取整的人数
发表于 2016-03-26 20:34:50 回复(0)
将酒编号0,1,2,3,4,5,6,7       二进制为000 001 010 011 100 101 110 111
A(4,5,6,7)-----三位二进制中第一位为1
B(2,3,6,7)----三位二进制中第二位为1
C(1,3,5,7)----三位二进制中第三位为1
若A中毒,BC没有中毒,4号有毒;若B中毒,AC没有中毒,2号有毒;若C中毒,AB没有中毒,1号有毒
若AB中毒,C没有中毒,6号有毒;若BC中毒,A没有中毒,3号有毒;若AC中毒,B没有中毒,5号有毒
若ABC都中毒,7号有毒;若ABC都没有中毒,0号有毒
发表于 2016-03-03 16:45:51 回复(1)
这道题从信息论的角度看很简单,8个瓶里面有1瓶毒酒,那喝到毒酒的概率就是1/8,而1/8的信息量为3bit,所以需要3个人就可以查到
发表于 2015-09-12 21:28:08 回复(0)
用人测试毒酒?好可怕
发表于 2016-08-03 19:42:44 回复(0)
发表于 2022-05-20 13:34:16 回复(0)
编号12345678取集合a(1234)b(3456)c(1357)根据中毒情况分析交集,如abc都中毒为3,ab中毒c不中毒为4。
发表于 2015-07-23 17:10:05 回复(0)
1个人只能看中毒(1)或者不中毒(0)
八种情况至少需要三个人 000~111 (0~7) ,每一种情况对应某一瓶是毒酒 



发表于 2015-08-30 20:49:45 回复(0)
用归纳法比较容易找出结果,理论上为:2的n次方。

是3个人,如果你学过数的2进制编码,就容易说了:
8瓶酒的编码如下:
0: 000
1: 001
2: 010
3: 011
4: 100
5: 101
6: 110
7: 111
3个人分别喝3个位上为1的编码,所以:
第一个:1,3,5,7
第二个:2,3,6,7
第三个:4,5,6,7
把中毒的人的位填1的二进制数,就是毒酒的编号。

 

这个题目研究起来,还是有一定普遍意义的。可以得到如下扩展的问题:

如上面的条件,每次测试需要8小时,只有8小时,有n人,最多能测出多少瓶酒中的有毒酒?
2的k次方等于n 那么k就是答案
转载于:http://blog.163.com/liuqunbeflying@126/blog/static/7932193120129174247951/
编辑于 2015-09-15 22:08:41 回复(5)
我们先讨论n个人,如果有一瓶毒酒,如何可以辨别出这一瓶毒酒:
设每个人都喝了n瓶酒(记录下每个小白鼠都喝过哪几瓶酒)
每瓶酒有些是一个人也没有喝过,有些是1个人喝过,有些是2个人喝过,有些是n个人喝过
根据死掉的人个数,判断他们共同喝过那一瓶酒,则可以判断那瓶是毒酒
那么一个人也没有死掉,则是那瓶没有被喝过的酒是毒酒,个数为C(N,0)
如果有一个人死掉了,那么是那瓶只有可能被一个人喝过的酒,个数为C(N,1)
如果有两个人死掉,那么是那瓶只有可能被两个人喝过的酒,个数为C(N,2)
依次类推:
如果有n-1个人死掉了,那么是那瓶被n-1个人喝过的酒,个数为C(N,N-1)
如果是n个人都死掉了,那么是那瓶被n个人都喝过的酒,个数为C(N,N)
所以N个人最多可以辨别酒瓶的个数为C(N,0)+C(N,1)+...+C(N,N-1)+C(N,N)=2^N
发表于 2015-10-04 10:57:11 回复(0)
一般认为,题目意思是每个人只能看到中毒和不中毒两种结果。
2^3=8,所以最少要3个人。


发表于 2014-12-31 12:07:06 回复(3)

用3位2进制代表8瓶酒,如下所示。

瓶序号

二进制表示

中毒情况

第一瓶

000

全没中毒

第二瓶

001

只有第一个人中毒

第三瓶

010

只有第二个人中毒

第四瓶

011

第一个人、第二个人同时中毒

第五瓶

100

只有第三个人中毒

第六瓶

101

第一个人、第三个人同时中毒

第七瓶

110

第二个人、第三个人同时中毒

第八瓶

111

三个人同时中毒

其中,第一个人喝下最低位为1对应的酒,第二个人喝下中间位为1对应的酒,第三个人喝下最高位为1对应的酒。所以,选项B正确。

发表于 2018-07-18 16:33:32 回复(0)
八瓶酒编号为1 2 3 4 5 6 7 8 两两组合(混合)成A〈1,2〉,B〈3,4〉,C〈5,6〉,D〈7,8〉 这时只需甲,乙两人试酒便可确定毒酒
发表于 2016-10-03 03:39:57 回复(0)
该题的要点在于用 n个人的状态 映射出 8瓶酒的毒性。
每个人在喝酒后只有活和似两种状态,可以类比成0和1,可以想到用二进制位数来进行映射。
如果将所有人的状态按顺序排列,那么该排列就是一个二进制数。现在要用 n位二进制数 映射出 8种结果,由于2^3=8,因此n的答案显而易见是3,也就是说人数是3
问:人的状态怎么与酒的毒性对应?
答:比如000对应第0瓶酒有毒,001对应第1瓶酒有毒。而111对应第7瓶酒有毒。你只需要考虑什么数对应什么酒,而不需要具体考虑哪个人喝了哪瓶酒
发表于 2024-05-06 23:56:51 回复(0)

这不就是数字电路里的编码器吗

发表于 2019-06-03 21:18:20 回复(0)
十进制:  0   1   2   3   4   5   6   7
二进制:000 001 010 011 100 101 110 111

A喝 100,101,110,111(第一位为1的)
B喝 010,011,110,111(第二位为1的)
C喝 001,011,101,111(第三位为1的)

  1. 若A中毒:
    BC未中毒,则100有毒
    B中毒C未中毒,则110有毒
    B未中毒C中毒,则101有毒
    BC均中毒,则111有毒

  2. 若B中毒:
    AC未中毒,010有毒
    A未中毒C中毒,011有毒

  3. 若C中毒:
    AB未中毒,则001有毒

  4. 若ABC均未中毒,则000有毒

log2(n)取整的人数

发表于 2018-09-05 09:38:14 回复(0)
一些题挺违背伦理的,正常出题人也不会用这种说法吧
发表于 2023-11-29 14:07:10 回复(0)
log2n 也就是n是2的几次方
发表于 2021-03-19 17:40:17 回复(0)
酒编号,1~8,把每个人喝的酒编号当做一个子集,目标是,各个子集相交后的某个区域只有唯一的一个编号,n个子集最多将平面划分为n^2-n+2个区域,即求n^2-n+2>=8,故n>=3
发表于 2020-12-29 10:50:00 回复(0)