首页 > 技巧 > 毒药和老鼠
作者:ghostry 发布时间:2019-06-22 浏览: 7051
转载注明出处: https://blog.1ge.fun/technique/924.html有一个题,大概是这样
首先我们有100杯水,已知其中有且只有1杯有毒药.
这个毒药喝下后1天会导致老鼠死亡.
问,最少需要几只老鼠,在1天里测出来哪一杯是毒药.
一般人可能觉得需要100只老鼠.
但其实这是一个二进制问题,
使用二进制的方式去解答.
只需要7只老鼠就可以测试出来哪一杯有毒药.
这是不是很神奇.
上一篇: 奇怪的现象下一篇: polkit-0.112-18.el7_6.1.x86_64: [Errno 256] No more mirrors to try
2的7次方可是有128,大于100。题目的意思应该是只要喝一口第二天必定死。
把杯子编号,然后转成二进制,最多7位,二进制位上为1的老鼠喝一口该杯水。最后看哪几只老鼠死就知道对应的二进制数,转成十进制数即可。
先50杯水混在一起让一只老鼠喝,死了,毒药在这50杯中,没死,毒药在另外50杯中;在有毒药的50杯中继续这个过程,重复7次,就可以知道毒药在哪一杯了。会想到要100只老鼠,主要是没想到可以几杯水混在一起来测,如果给出这个提示,大多数能都能想到正确的方法吧
这个方式时间超了,题目要求是在1天里测出来,这种方式需要7天.
哈哈哈,求水杯的交集?7只老鼠一起喝50杯吗?
不是,