老鼠和毒药
实验室有100个瓶子,其中有一瓶装有慢性毒药(第3天发做),另外99瓶装有蒸馏水。请问至少须要多少只小白鼠才能在3天内找出哪一瓶是慢性毒药?编码
利用二进制来作,最少的老鼠数量就是计算2的多少次方大于等于瓶子数量,例如本题为7。对100瓶进行二进制编码,这样能够排列出1xxxxxx,x1xxxxxx,...,xxxxxx1这样的七组序列。7只老鼠分别去喝这些组合的药。spa
第1只老鼠死了,说明有毒的药第1位必定是1,反之必定是0class
同理第二只,第三只。。。二进制
能够肯定有毒药的药物的二进制表示。di
这个思路是如何想到的,思想就是老鼠的状态只有01有两种,恰好和二进制表示相对应。co