老鼠喝藥問題(篩選特例問題):
(用於自學和分享)
問題描述:
有1瓶毒藥和99瓶水,共100瓶液體,需要用小白鼠檢驗哪瓶有毒。PS:毒藥不會因爲混合其他液體降低毒性。
解決辦法:
將100瓶液體進行編號並對老鼠的分配如下:
將每列二進制編號中含有1的瓶子中液體進行混合,共可混合出7種,然後令老鼠喝(如:一號老鼠喝64號[64=100 0000B]、65號[65=100 0001B]……100號[100=110 0100B]瓶子;二號老鼠喝32號[32=010 0000B]、33號[33=010 0001B]……99號、100號;七號老鼠喝1號、3號、5號……瓶子中液體混合物)。
若1號4號5號老鼠死亡:即老鼠所在列的編號爲:1001100 -->其十進制表示爲:2^6+2^3+2^2 = 76 即第76瓶液體有毒。