Label the bottles from 0 to 999 in binary format. Since 999<2^10=1024, you only need at most 10 digits to represent each bottle. Now the i'th tester will drink out of those bottles with digit '1' at the i'th position on the label. For example, the first tester will drink from all odd numbered bottles and the last tester will drink from label 512 to 999. After 7 days, note the deaths and reconstruct the label number: put a 1 on the i'th position in binary if the i'th tester died.
This will take 8 days: 1 day to drink and 7 days waiting for the poison to take effect. Min # of deaths is 0 when the poison bottle is labeled 0; Max # of deaths is 9 because there are not bottles labeled 1023 (which corresponds to 10 digits of '1's).
When there are only 9 testers, we divide the bottles into two piles (0-511, 512-999) and do the same strategy on first pile on the first day and second pile on the second day. If someone died on day 8 you know it's from the first pile and the method to find the bottle number. Otherwise you'll know it's from the second pile and your 9 testers are still alive after day 8, so they are available in day 9 to see the effect. So it will take 9 days and max/min death=9/0 |