问题:现有三只老鼠,8瓶药,其中有一瓶是毒药,怎么测出哪个瓶子里边是毒药?
思路:在二进制中,三只老鼠可以表示0-7的十进制数字,比8小,通过交叉对比可以获得哪个有毒。
1: 给八瓶药编号
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
以上分别对用7瓶药
2: 给老鼠分配瓶子
A:末位为1的瓶子,即为1,3,5,7瓶子。
B:中位为1的瓶子,即为2,3,6,7瓶子
C:首位为1的瓶子,即为4,5,6,7瓶子
3:结果可能
- 死死死,全部都死,则每只老鼠都喝到了毒药,所以为7瓶。
- 死死活,C活了,则说明4567瓶子没有毒,AB都死了,则AB喝的相同的瓶子有可能为毒药,37可能为毒药,又因为C活着,证明7没毒,则是3有毒。
- 死活死,同理5号瓶有毒
- 死活活,1有毒
- 活活活,8有毒
- 活活死,4有毒
- 活死活,2有毒
- 活死死,6有毒