首页 > 试题广场 >

有 500 桶酒,其中一桶有毒,而一旦吃了,毒性会在一周内发

[单选题]

有500桶酒,其中一桶有毒,一旦吃了毒性会在一周后发作。现在我们用小老鼠做实验,必须在一周后立即找出那桶毒酒。至少需要多少只老鼠?

  • 5
  • 10
  • 9
  • 20
将500桶毒酒进行编号,并用二进制表示。得到000000000~111110100。
每只老鼠编一个号(从1开始),对应二进制的每一位(从0位开始),然后喝下对应位数为1的那个编号的毒酒 然后根据死亡的老鼠的编号或者毒酒的二进制编码,进而获得毒酒的编号。如毒酒编号为350,那么二进制对应为101011110,老鼠2、3、4、5、7、9会死亡。
发表于 2018-09-14 20:51:17 回复(3)
2的x次方范围内所有的数的二进制。
第1只老鼠喝掉所有二进制第1位是1的酒
第2只老鼠喝掉所有二进制第2位是1的酒
....
第x只老鼠喝掉所有二进制第x位是1的酒

死掉的老鼠就是答案数值二进制对应位置上是1,其余位置为0.
编辑于 2017-03-04 11:07:35 回复(0)
本题实质:用n二进制位数转能表示的最大十进制数:2的n次方   
最终结果:能满足条件的最大的n值
2的9次方为512,能满足题意,所以答案为9
最终第一只老鼠喝掉二进制第一位为1的酒,第二只老鼠喝掉二进制第二位为1的酒。。。。。。。
至于判断如何中毒:
有毒的桶      二进制                  中毒情况
第一桶       0 0000 0000           都没中毒(因为没有老鼠喝了第一桶)
第二桶       0 0000 0001           第一个老鼠中毒(只有他喝了第二桶,然而他死了)
。。。。。。。。。。。。。。。。。。。。。。。。
发表于 2017-09-07 16:47:31 回复(4)
答案是C
        2的9次方=512>500
发表于 2016-12-10 14:39:37 回复(0)
这种海量数据的题目的求解思路一般分两种:位运算和二分查找
发表于 2019-04-11 09:42:10 回复(0)
共500桶酒,相当于500中组合方式,那么可以这样考虑,设需要x只小白鼠,x只小白鼠随机数量组合喝一桶,只要组合数大于500就可以了;所以而得到
Cx1   +  Cx2  +  Cx3  +  .....  +  Cxx-1  +   Cxx     >= 500

那么,最小的X即为小白鼠的数量,值为9
发表于 2018-02-28 12:43:20 回复(0)
想知道如果是多桶酒有毒呢,怎么用小白鼠去检测呢?
发表于 2020-09-14 19:03:00 回复(0)
二进制的题目,第一只喝10,11,100,101,110.....第二只01.....
发表于 2017-04-20 09:49:07 回复(0)
一周后发作,那就是一周后才能发现老鼠是否中毒,又要求一周后立即查明,这。。。一周后指的是第一天还是第七天呢,这题出的有点太不严谨了吧。
发表于 2022-08-02 14:38:13 回复(0)
每只老鼠对应喝与不喝两种情况,为每桶就对应一种组合即可,即2的n次方大于等于500
发表于 2022-04-27 10:44:27 回复(0)
<p>什么烂题</p><p>一周内死,那如果正好死在第七天呢</p><p><br></p>
发表于 2020-09-18 14:44:18 回复(0)
海明校验码
发表于 2020-03-26 11:03:42 回复(0)

我只能说,卧槽

发表于 2019-10-15 00:20:58 回复(3)
2的9次方
发表于 2019-09-29 19:58:31 回复(0)
让我想起汉明码纠错码,思想有共通之处
发表于 2018-04-08 00:07:25 回复(0)
2进制的思想
发表于 2017-01-10 16:42:07 回复(0)