⭐️ 面试智力题 ⭐️小鼠测毒(有 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只小鼠

相关文章
技术面试常见智力题
了解技术面试常见智力题。
265 0
面试过程中遇到的智力题
1、滴滴三面真题 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
1675 0
|
Java
技术面试中常见的几道智力题 来看看你会做几道?
下面是大部分题目来自滴滴出行2017秋招题。有几道题目是我在做的时候没有想出来的,还有几道题目整理在这里单纯是为说明有一些智力方向的面试题并不是大家想的那么难,我们运用高中的知识就完全可以解决。
4962 0
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!