Hear me out.
The minimum number of prisoners that we can use is 10, no doubts about that. Out of these 10, how many will be killed in the worst case?
For each number from 0 - 1023, we can assign a bottle based on the binary representation of the corresponding number. If there’s a ‘1’ in the i-th place then the i-th prisoner gets the bottle.
Now, we need not choose the numbers 0-999 as mentioned in the official solution. Let us choose such 1000 numbers that the maximum number of set bits is minimum, say k bits. This way no matter which bottle is poisoned, at most k prisoners will die.
C(10, 0) + C(10, 1) + C(10, 2) + … + C(10, k) >= 1000
For k = 8, this holds true.
Another way to look at this - out of 1024 possible combinations, only 10 are lethal to 9 prisoners and 1 is lethal to all 10 prisoners. 1024 - 10 - 1 = 1013 which is more than what we need.
Correct me if I’m wrong.