二进制解决“老鼠试药”问题

假设只有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瓶药水呢?需要几只老鼠?欢迎解答。

标签: 算法

如果本文对您有所帮助,可以扫下面二维码给我支持,您的鼓励是我前进的动力!

微信

支付宝

目录

评论

*
*

正在加载验证码......

最新评论

  • 无评论