1000瓶藥劑,其中一瓶有毒,喝了立即死亡,小白鼠實驗那一瓶有毒?
喝了立即死亡,一隻小白鼠從1號喝到底,喝到哪兒死,哪兒有毒,簡單。
1000瓶藥劑,其中一瓶有毒,毒性一個小時發作。要在一個小時之後,找出哪一瓶有毒?
找來999只小白鼠,一隻一瓶也不用搶,一小時之後那隻死了對應喝的那瓶有毒,簡單。
增加要求,最少多少隻小白鼠,一個小時之後,可以找出有毒的藥劑?
藥劑有毒/無毒,二進制,0和1的問題,假設0是五毒,1是有毒。
舉個例子:10瓶藥劑,其中1瓶有毒,1小時毒性發作,至少需要多少小白鼠1小時之後找出有毒的藥劑?
把瓶子的序號轉換成二進制,10<16,也就是要4只小白鼠,2*2*2*2,分別取爲abcd。
開始試驗:
默認全部都是無毒的,小白鼠喝完之後狀態應該是0000。每隻小白鼠都要喝自己對位編號爲1的藥劑。
白鼠a喝8、9、10號藥劑
白鼠b喝4、5、6、7號藥劑
白鼠c喝2、3、6、7、10號藥劑
白鼠d喝1、3、5、7、9號藥劑
數據推演驗證結果:
如果1號有毒,白鼠(abcd)死亡情況就是0001,轉換成二進制就是1號;
如果2號有毒,白鼠(abcd)死亡情況就是0010,轉換成二進制就是2號;
如果3號有毒,白鼠(abcd)死亡情況就是0011,轉換成二進制就是3號;
......
如果8號有毒,白鼠(abcd)死亡情況就是1000,轉換成二進制就是8號;
如果9號有毒,白鼠(abcd)死亡情況就是1001,轉換成二進制就是9號;
如果10號有毒,白鼠(abcd)死亡情況就是1010,轉換成二進制就是10號;
推演論證:
1000只小白鼠,小於次方1024,所以至少要10只小白鼠,在一個小時之後可以找到有毒的藥劑。
也可以默認全部都是有毒的,小白鼠不喝自己編號對位的藥劑,結果亦然。