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