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