1000桶酒,其中1桶有毒,一旦吃了毒性会在1周后发作。用老鼠做实验测毒性,最少需要多少只老鼠可在一周内找出毒酒 ?
老鼠只有死与活两种状态,因此想到使用二进制。(2^10=1024)
对所有酒以10位二进制编码:00000 00001~11111 01000
取10只老鼠按二进制编号:
00000 00001;
00000 00010;
00000 00100;
……
……
10000 00000。
每只喝其编码与酒编码做位与运算非0的酒。
将结果填入二进制数中,转化为十进制即可得出结果。