⭐️ 面试智力题 ⭐️小鼠测毒(有 1000 瓶药物,但是其中有一瓶是有毒的,老鼠只要服用任意量有毒药水就会在一个星期内死掉!请问,在一个星期后找出有毒的药物,最少需要多少只小白鼠?)

2022-11-30 08:08:15 浏览数 (1)

题目

有 1000 瓶药物,但是其中有一瓶是有毒的,老鼠只要服用任意量有毒药水就会在一个星期内死掉!请问,在一个星期后找出有毒的药物,最少需要多少只小白鼠?

tip:

  1. 小鼠可以多次喝药水
  2. 涉及对bit位的灵活运用(正确解题)

解答

先对药物进行编号1-1000 因为1000<2^10=1024,将编号转换成2进制 1000瓶全都编号完则需要10个比特位,每个比特位对应一只编号小鼠 如果是1,则对应的比特位的小鼠喝药品,为0则对应小鼠不喝药品 如下: 1 -> 00000 00001 ->1号鼠 2 -> 00000 00010 ->2号鼠 ... 5 -> 00000 00101 ->3,1号鼠 ... 1000->11111 01000->4、6、7、8、9、10号鼠 如果一星期后是4,6,7,8,9,10号鼠死掉,则对应的1000号药物有毒

答:最少需要10只小鼠

bit

0 人点赞