問題一:8瓶水,其中一瓶有毒,問要找出有毒的水,你至少要嘗試幾次?(前提是毒不死人的)
問題二:還是這個題目,另外提供一群小白鼠,現在要你同時給n只小白鼠喝水,問至少需要幾隻小白鼠能一次性找出毒水?
問題一比較簡單,二分法,假設瓶子編號依次為0 1 2 3 4 5 6 7,先等分成2份,然後從其中乙份中取出點水混合下,喝,有問題則毒水在這份中,沒問題則毒水在另乙份中,然後再二分,這樣只需要嘗試3次, 2^3=8。
問題二:至少需要3只小白鼠,二進位制思想2^3=8,小白鼠喝完水的狀態只有2種,要麼生要麼死,因此要判斷8瓶水,必須要有3只白鼠才可以。
a b c
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
a b c分別是三隻小白鼠,每只白鼠喝編號為它的下面出現1的數字代表的瓶,如a喝 4 5 6 7瓶,b喝 2 3 6 7,c喝1 3 5 7。或者喝下面出現0的數字代表的瓶也行。
小白鼠鑑別有毒水問題
題目 有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一點帶毒的水24小時後就會死亡,至少要多少只小白鼠才能在24小時時鑑別出哪瓶水有毒。將1000瓶水編號。準備10個盤子並編號。準備10只小白鼠並編號 2 10 1024,用二進位制表示為10000000000,一共有11位,因為1024 1000,所...
用程式設計解決小白鼠問題
理解 需要用最少的小白鼠查出哪瓶是毒藥水,所以就不能用1000只小白鼠 我們可以嘗試使用程式設計的思維看待這個問題 一 將1000個瓶子都貼上標籤,1 1000.二 將1 1000翻譯成二進位制編碼,可以看出210只是1024,所以只需要,10個位數就能表達1 1000.三 在十個位數上分別放上乙隻...
小白鼠排隊
在這裡插入 片總時間限制 1000ms 記憶體限制 65536kb 描述 n只小白鼠 1 n 100 每只鼠頭上戴著一頂有顏色的帽子。現在稱出每只白鼠的重量,要求按照白鼠重量從大到小的順序輸出它們頭上帽子的顏色。帽子的顏色用 red blue 等字串來表示。不同的小白鼠可以戴相同顏色的帽子。白鼠的重...