毒藥與老鼠 程式實現

2021-06-19 21:41:40 字數 538 閱讀 2667

有 n個一模一樣的瓶子,其中有 n-1瓶是普通的水,有一瓶是毒藥。任何喝下毒藥的生物都會在一星期之後死亡。問你需要有多少只小白鼠和一星期的時間,來檢驗出哪個瓶子裡有毒藥?怎麼檢驗?程式設計實現檢驗過程。

程式設計思路:

設瓶子個數為n,根據我另一篇博文可知老鼠不能少於ceiling(log(n))只,首先程式設計得到老鼠的數量k,然後模擬老鼠吃藥的過程,最後根據老鼠的死亡情況可以得到瓶子的編號。

#include #include #include using namespace std;

/*b中為true的那個是有毒的瓶子

*/int findpoisonbottle(vectorb)

status.resize(k, false);

for(int i=0; i>= 1;

mouseindex++;

} }//從老鼠死亡情況推出瓶子的編號

for(int i=1; i<=k; i++)

return index;

}int main()

老鼠與毒藥問題

偶然在社群上看到這個問題,看到了程式設計師的回答,饒有興趣,於是查詢了csdn後,終於看懂了。有1000瓶液體 正常,無毒 但是由於工作人員失誤,將毒藥滴到了其中一瓶中,從外觀和氣味上完全無法分辨出哪乙個是被汙染過的,我們只知道這個毒藥的毒發期是7天,實驗室有10只小白鼠,只有7天的時間,如何實驗才...

老鼠與毒藥問題

大家應該都聽說過這個老題目 有 1000 個一模一樣的瓶子,其中有 999 瓶是普通的水,有一瓶是毒藥。任何喝下毒藥的生物都會在一星期之後死亡。現在,你只有 10 只小白鼠和一星期的時間,如何檢驗出哪個瓶子裡有毒藥?這個問題的答案也堪稱經典 把瓶子從 0 到 999 依次編號,然後全部轉換為 10 ...

老鼠與毒藥問題

有1000瓶藥,其中有一瓶有毒,老鼠一旦喝一點毒藥就會在24小時後死亡,問最少要多少只老鼠才能在24小時後知道哪一瓶是有毒的。把所有的數轉換成二進位制,如最大的1000轉化成二進位制為1111101000 將所有第一位為1的取出一些混合在乙個瓶子裡 將所有第二位為1的取出一些混合在乙個瓶子裡 將所有...