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

简介: 智力题

题目

有 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只小鼠

相关文章
技术面试常见智力题
了解技术面试常见智力题。
257 0
面试过程中遇到的智力题
1、滴滴三面真题 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
1666 0
|
Java
技术面试中常见的几道智力题 来看看你会做几道?
下面是大部分题目来自滴滴出行2017秋招题。有几道题目是我在做的时候没有想出来的,还有几道题目整理在这里单纯是为说明有一些智力方向的面试题并不是大家想的那么难,我们运用高中的知识就完全可以解决。
4955 0
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。