老鼠喝毒药问题分析及代码
(一)題目:
? ? ? ? 有100瓶裝水的水瓶,其中一瓶混了毒藥,每只測試的小老鼠喝下毒藥后要t1的時間才能顯示出是否喝了毒藥,并只給t2的時間來判斷找出毒藥的最少實驗老鼠。
分析:
? ? ? ? 如果有兩天時間,老鼠有3種生死可能性:0-? 10 11;而一只老鼠在這2天時間里可以測3(3^1)個瓶子是否有毒并找出來,兩只老鼠就可以測出9(3^2)個瓶子是否有毒并找出來,以此類推,x只老鼠可以測出4^x個瓶子并找出有毒的那瓶。
? ? ? ? 同理,如果有三天時間,老鼠有4種生死可能性 (0死?1生):0--??10-??110??111。而一只老鼠在這3天時間里可以測4(4^1)個瓶子是否有毒并找出來,兩只老鼠就可以測出16(4^2)個瓶子是否有毒并找出來,以此類推,x只老鼠可以測出4^x個瓶子并找出有毒的那瓶。
代碼如下:
#include<bits/stdc++.h> using namespace std; int main() {int n, t1, t2;cin >> n >> t1 >> t2;int m = t2 / t1 + 1;for (int i = 0;; i++)if (pow(m, i) >= n) {cout << i; break;} }(二)題目:
? ? ? ? 有100瓶裝水的水瓶,其中一瓶混了毒藥,每只測試的小老鼠喝下毒藥后要一天的時間才能顯示出是否喝了毒藥,判斷找出毒藥的最少實驗老鼠x.
分析:
? ? ? ??假設(shè)有8瓶水,那么小老鼠試驗后的可能性有:(0不喝水,1喝水)
0 0 0 --第一瓶
0 0 1 --第2瓶
0 1 0 --第3瓶
0 1 1 --第4瓶
1 0 0 --第5瓶
1 0 1 --第6瓶
1 1 0 --第7瓶
1 1 1 --第8瓶
其實這題和上面那題差不多,第一題會了的話,這題也是一樣的思路可以寫出來,相當(dāng)于t1=1,t2=1;(代碼自己改一下就行啦)
總結(jié)
以上是生活随笔為你收集整理的老鼠喝毒药问题分析及代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 图片缓存工具,java缓存读取
- 下一篇: 天联无法ping通服务器地址_金万维天联