老鼠與毒藥問題

2022-08-24 19:12:08 字數 504 閱讀 7205

有1000瓶藥,其中有一瓶有毒,老鼠一旦喝一點毒藥就會在24小時後死亡,問最少要多少只老鼠才能在24小時後知道哪一瓶是有毒的。

把所有的數轉換成二進位制,如最大的1000轉化成二進位制為1111101000

將所有第一位為1的取出一些混合在乙個瓶子裡;

將所有第二位為1的取出一些混合在乙個瓶子裡;

.....................................

將所有第十位為1的取出一些混合在乙個瓶子裡;

之所以取到第十位是因為最大的1000只有十位。

把10瓶藥分別餵給10只老鼠,24小時後,死的老鼠對應的位為1,沒死的為0,

得到乙個10位的二進位制數,將二進位制轉換為十進位制就是有毒的那一瓶藥。

老鼠與毒藥問題

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

老鼠與毒藥問題

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

老鼠與毒藥問題

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