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 taste 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 1's 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 scores a 1 and each live rat scores a 0. The entire pattern of deaths forms a 10-bit binary number. If the observed pattern was: $$
0000001101,
$$ We would read that number in binary and we would get 13. Therefore, the poisoned bottle would be number 13. Since 10 bits allow us to distinguish 1024 different patterns, they are enough to accurately identify one bottle out of 1000.