📜  拼图19 | (毒药和老鼠)

📅  最后修改于: 2021-04-29 06:20:58             🧑  作者: Mango

有1000个葡萄酒瓶。其中一瓶装有有毒的葡萄酒。老鼠喝了有毒的酒一小时后就死了。需要多少只最小的老鼠才能在一个小时内弄清楚哪个瓶子含有毒药。

解决方案:
我们需要按小时计算。我们需要10只老鼠来找出中毒的瓶子。结果基于二进制数字系统。我们用⌈Log 2 1000 get得到10。

想法是从1到1000编号瓶子,并在瓶子上写下其相应的二进制数字。每只大鼠均以写在瓶子上的二进制数字分配一个位置。让我们举个例子。大鼠1代表每个瓶子的第一位,大鼠2代表第二位,依此类推。如果编号为5、7和9的老鼠死亡,则编号为42的瓶子(二进制0000101010)会中毒。