7瓶水1瓶有毒3只老鼠,怎么找有毒的水,再加个条件,必须要求第二天出结果
- 二分查找思路,每次均分两组,每组各取一滴水混合成新溶剂喂给老鼠,继续对导致老鼠死亡的一组水进行同上操作。假如是第1瓶有毒,过程演绎如下,第一只老鼠死于前一堆(mid=(0+6)/2=3, 即服用了第1、2、3、4瓶的混合溶剂),第二只老鼠死于前一堆(mid=(0+3)/2=1, 即服用了第1、2瓶的混合溶剂),第三只老鼠随意试一瓶,根据服用后状态即可判断有毒的水。
- 二进制编码思路,对每瓶水二进制编码,所需编码位数正好为三位,将第一 位是1的水混为新溶剂喂给第一个老鼠,以此类推,看三只老鼠服用状态(死亡=1,存活=0)得出对应的编码,找到对应的水即可。假如是第1瓶有毒,编码之后,让第一只老鼠服用第4、5、6、7瓶的混合溶剂,第二只老鼠服用第2、3、6、7瓶的混合溶剂,第三只老鼠服用第1、3、5、7瓶的混合溶剂,最终第一只和第二只老鼠存活,第三只老鼠死亡,对应编码为001,对应的水是第一瓶,故此瓶有毒。
第一瓶水001
第二瓶水010
第三瓶水011
第四瓶水100
第五瓶水101
第六瓶水110
第七瓶水111