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

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

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

评论

Loading...

最新评论

相关推荐

nginx常用配置
nginx是什么 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。可以管...
理解v8的内存管理
V8的内存管理模式 一个运行的程序通常是通过在内存中分配一部分空间来表示的。这部分空间被称为驻留集(Resident ...
vue2+vuex+vue-router+webpack+es6搭建项目架构
vue全家桶包括vue,vue-router,vuex等模块,vue负责渲染,vue-route负责路由,vuex负责状...
scroll-top-icon