題目如下:
現有1000瓶藥,其中有1瓶毒藥,老鼠喝了之后1小時后才產生效果,問怎樣用最少的時間,和最少的老鼠找出毒藥?

哈哈,這還不簡單,找1000只老鼠,每只都喂,等一個小時,看哪只老鼠不行了;

要不,就給我一只老鼠,喂一瓶等一個小時,直到老鼠出問題,毒藥就檢測出來了,

正經點~!
答案是1個小時,11只老鼠
因為老鼠只有2種狀態,良好/例外
我們先吧1000瓶藥用二進制編號(二進制在線轉換工具 https://tool.lu/hexconvert/)

順便把二進制,各個位拆開得到右圖的效果;
接下來,準備好標簽和老鼠;
讓老鼠喝上圖右邊值為1的瓶子(可以借助Excel篩選排序,現在已經做好了標注)
1).第1只喝999,997,995,993,991,.....
2).第2只喝999,998,995,994,991,.....
3).第3只喝999,998,997,996,991,.....
以此類推
再靜靜等待1個小時,看看哪幾只老鼠,出現例外,
再通過二進制轉十進制計算就知道,哪瓶是毒藥了,
假如是,1,8,10號出現例外
那么就是2^0+2^7+2^9=641(表格的二進制轉換時+1了,這里要-1)
演算法入門的開胃菜
有興趣的朋友可以查看沖鋒哥的簡介,有更為詳細的資料等你,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290143.html
標籤:其他
