百度推送了一个题目:
7瓶药水一瓶有毒,三只小白鼠,毒药发作一小时时间。问题:如何在一小时的时间内找出毒药水。
笔者看题后,感觉很有意思,并隐隐感觉可以做出来。经过一番思考,最终得解。 下面给出出思考过程:
根据题目要求,小白鼠只能喝一次药水,因此问题就简化成:如何配比这些药水,通过小白鼠的死活状态来判断毒药水。
1、首先想到,其实测试6瓶就可以了。(自己想想为什么)
小白鼠喝的饮料必然是某种组合,而这种组合可以表征毒药水的位置。
2、为了方便起见,将毒药水编号为1-7, 小白鼠编号为ABC。
3、如果只有三瓶药水,那么可以这样分配
A(1),B(2),C(3),这样一次就可以测出毒药水了。
4、 如果有四瓶呢?
第四瓶必然要和上面的混合,混合方法只有三种方式
4.1 A(1,4),B(2),C(3):这种情况如果是A 死, 则不能判断,淘汰…
4.2 A(1,4),B(2,4),C(3):这种情况如果是:A死B死则可以判定4 是毒药水…
4.3 A(1,4),B(2,4),C(3,4):都死,4是毒药水…
显然4.3浪费了一次机会,淘汰,这样4.2 是尝试方向。
(思考…)
5、根据上面的思路,考虑用 1 表示死,0 表示活, 得出解法如下
药水组合方案(括号内表示药水组合编号):
A(1,4,6),B(2,4,5),C(3,5,6)
对应结果和判断
6、 发现如果组合如下:
A(1,4,6,7),B(2,4,5,7),C(3,5,6,7)
则可以判断8瓶药水,判断结果如下:
是记
马拉孙于2021-07-20
北京泛五地区