老鼠和毒藥
實驗室有100個瓶子,其中有一瓶裝有慢性毒藥(第3天發做),另外99瓶裝有蒸餾水。請問至少須要多少隻小白鼠才能在3天內找出哪一瓶是慢性毒藥?編碼
利用二進制來作,最少的老鼠數量就是計算2的多少次方大於等於瓶子數量,例如本題爲7。對100瓶進行二進制編碼,這樣能夠排列出1xxxxxx,x1xxxxxx,...,xxxxxx1這樣的七組序列。7只老鼠分別去喝這些組合的藥。spa
第1只老鼠死了,說明有毒的藥第1位必定是1,反之必定是0class
同理第二隻,第三隻。。。二進制
能夠肯定有毒藥的藥物的二進制表示。di
這個思路是如何想到的,思想就是老鼠的狀態只有01有兩種,恰好和二進制表示相對應。co