Rarely does such a short problem open up such a big idea. Here it is not whoever tries the most who wins, but rather whoever makes the most of what each rat can say.

The thousand poisoned bottles

Master
Master plays

Riddle statement

You have 1000 bottles of wine. One of them is poisoned, and a single drop is enough to kill a rat exactly 24 hours later.

You have 10 laboratory rats and you can only do one round of tests. You can prepare a mixture for each rat with drops from several bottles.

How do you identify with certainty the poisoned bottle in a single 24-hour cycle?

Show solution

Solution

Answer: use the 10 rats as the 10 bits of a binary code.

Number the bottles from 0 to 999. Each number can be written in binary with 10 bits, because:

$ 2^{10}=1024. $

Assign each rat to one of those 10 binary positions. For each bottle, look at its number in binary: if a position has a 1, you give a drop from that bottle to the corresponding rat; if there is a 0, that rat does not try that bottle.

For example, bottle 13 is written in binary with 10 bits as:

$ 0000001101. $

That means that bottle is included in the mix of the rats corresponding to the three 1s of that code. If we number the positions from right to left, rats 1, 3 and 4 would die.

After 24 hours, each dead rat marks a 1 and each live rat marks a 0. The complete pattern of deaths forms a 10-bit binary number.

If the observed pattern out:

$ 0000001101, $

we would read that number in binary and we would obtain 13. Therefore, the poisoned bottle would be number 13.

As 10 bits allow us to distinguish 1024 different patterns, they are enough to identify with certainty one bottle among 1000.