A king had received a gift of 100 bottles of wine but suspected one had been poisoned.
The king placed 100 wine bottles on the table, 99 of which contained normal wine and one which contained poison. Even a sip of the poisoned wine was enough to kill.
The poison was indetectable, meaning it wouldn’t alter the taste or smell of the wine. Each of the king’s knights could bring as many of their own slaves as they wished to help them in the task.
The catch was that the poison took effect exactly 24 hours after consumption. Thus, the knights had 24 hours to identify the poisoned bottle.
A slave could survive a sip of the poisoned wine but would die 24 hours after drinking any more than that. How could the knights determine which bottle of wine is poisoned within the time frame?
The answer to this riddle is to use the binary system, and assign each slave a binary number.
However, given the condition that a slave can survive a sip of poison, you would actually need fewer than 100 slaves. Theoretically, you could solve this problem with just 10 slaves.
Assign each slave a number from 1 to 10. Then assign each bottle a number from 1 to 100. Convert the bottle numbers to binary. For each binary digit of the bottle numbers, if it’s a 1, the corresponding slave takes a sip from the bottle.
For example, Bottle #25 would be represented as 11001 in binary, so Slaves 1, 4, and 5 would drink from this bottle. Bottle #100 would be represented as 1100100 in binary, so Slaves 3, 6, and 7 would drink from this bottle.
Wait 24 hours. The number of the poisoned bottle will be indicated by the binary digits corresponding to the dead slaves. For example, if Slaves 1, 5, and 7 died, the poisoned bottle would be bottle number 1010001, which is 81 in decimal.