老鼠喝毒水问题
問題1:有1000瓶外表一樣的水,其中一瓶里面有毒藥,老鼠喝下毒藥1天內會死,求怎樣在一天內用最少的老鼠數量判斷哪瓶水有毒。
答:10只老鼠。用一天的時間就是說只做一輪實驗,瓶子用編號0~999(用10位2進制數,即0000000000,0000000001,0000000010……,這樣瓶子的編號從右往左分別為0號位、1號位……一共10個位),給老鼠編號0~9,i號老鼠喝下所有i號位為0的瓶子的水,這樣如果有i號老鼠死了(真殘忍T_T)就知道毒藥的i號位為0,沒死則為1,就得到了瓶子的編號。
問題2:有1000瓶外表一樣的水,其中一瓶里面有毒藥,老鼠喝下毒藥1天內會死,求怎樣在k天內用最少的老鼠數量判斷哪瓶水有毒。
答:光說怎么做實驗好了。假設答案是用了x只老鼠(編號0~x-1),用k天則可做k輪實驗,用k進制給0~999號瓶子編號,第一輪i號老鼠喝下i位為0的瓶子的水,如果j號位老鼠死了,則毒藥的j號位為0,。第二輪,i號位老鼠繼續喝下i號位編號為1的瓶子的水(當然死老鼠就沒辦法喝水了),如果j號位老鼠死了,則毒藥的j號位為1,如次進行k輪實驗即可。
總結