假设只有9瓶水,只有一瓶有毒,需要多少老鼠就可以检测出有毒的那一瓶水,可以通过位掩码用来处理经典的”老鼠试药“的问题

这里用其编号用二进制表示瓶的个数,可以列出下表,比如0001代表1号瓶,0002代表2号瓶。。。

0 0 0 1 1号
0 0 1 0 2号
0 0 1 1 3号
0 1 0 0 4号
0 1 0 1 5号
0 1 1 0 6号
0 1 1 1 7号
1 0 0 0 8号
1 0 0 1 9号
老鼠A 老鼠B 老鼠C 老鼠D  

上面老鼠ABCD分别意思是药水混合,比如老鼠A喝的是8和9号,老鼠C喝的是2,3,6,7号的混合

如果老鼠B和老鼠C都死了,对应的编码是0110,有毒的是6号,如下图

老鼠A 老鼠B 老鼠C 老鼠D
0 1 1 0

那如果是8瓶药水呢?需要几只老鼠?欢迎解答。

本文为原创,未经授权,禁止任何媒体或个人自媒体转载
商业侵权必究,如需授权请联系[email protected]
标签: 算法