1. 程式人生 > >有1000瓶藥水,其中只有一瓶有毒。現在用小白鼠進行實驗,小白鼠只要服用任意量有毒藥水就會在24小時內死亡。問至少要用多少隻小白鼠進行實驗才能檢測出哪瓶藥水有毒?

有1000瓶藥水,其中只有一瓶有毒。現在用小白鼠進行實驗,小白鼠只要服用任意量有毒藥水就會在24小時內死亡。問至少要用多少隻小白鼠進行實驗才能檢測出哪瓶藥水有毒?

時間不是問題,24小時內肯定可以找出有毒的那瓶。 
給1000個瓶分別標上如下標籤(10位長度): 
0000000001 (第1瓶) 
0000000010 (第2瓶) 
0000000011 (第3瓶) 
...... 
1111101000 (第1000瓶) 
從編號最後1位是1的所有的瓶子裡面取出1滴混在一起(比如從第一瓶,第三瓶,。。。裡分別取出一滴混在一起)並標上記號為1。以此類推,從編號第一位是1的所有的瓶子裡面取出1滴混在一起並標上記號為10。現在得到有10個編號的混合液,小白鼠排排站,分別標上10,9,。。。1號,並分別給它們灌上對應號碼的混合液。24小時過去了,過來驗屍吧: 
從左到右,死了的小白鼠貼上標籤1,沒死的貼上0,最後得到一個序號,把這個序號換成10進位制的數字,就是有毒的那瓶水的編號。