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

2017-06-02

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

标签: 算法

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

微信

支付宝

目录

评论

*
*

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

最新评论

  • 无评论
相关推荐
javascript之this详解(上)
1. 迷之 this 对于刚开始进行 JavaScript 编程的开发者来说,this 具有强大的...
javascript之this详解(下)
4. 构造函数调用 构造函数调用使用 new 关键词,后面跟随可带参数的对象表达式,例:new...
nginx常用配置
nginx是什么? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。...