1. 程式人生 > >有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一點帶毒的水24小時後就會死亡至少要多少隻小白鼠才能在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進位制的數字,就是有毒的那瓶水的編號。 

檢驗一下:假如第一瓶有毒,按照0000000001 (第1瓶),說明第1號混合液有毒,因此
小白鼠
生死符為0000000001(編號為1的小白鼠掛了),0000000001二進位制標籤轉換成十進位制=1號瓶有毒;假如第三瓶有毒,0000000011 (第3瓶),第1號和第2號混合液有毒,因此小白鼠生死符為00000011(編號為1,2的鼠兄弟掛了),0000000011二進位制標籤轉換成十進位制=3號瓶有毒。