e990 - 奇怪的隕石
題目描述
題目描述了隕石的放射性衰變現象,其質量會隨著時間呈指數衰減。給定隕石的半衰期 T 和最終質量為原始質量的 n 倍(0 < n < 1),要求計算從原始隕石衰變到剩餘質量為 n 倍所需的時間。
解題思路
由於隕石的質量以指數衰減,且半衰期為 T,我們可以建立一個指數衰減模型。設 t 為所需時間,則隕石的剩餘質量可以表示為:
質量(t) = 原始質量 * (1/2)^(t/T)
題目要求 質量(t) = n * 原始質量,因此:
n * 原始質量 = 原始質量 * (1/2)^(t/T)
簡化後得到:
n = (1/2)^(t/T)
對兩邊取對數(以 2 為底):
log2(n) = t/T
因此,t = T * log2(n)。由於題目要求使用自然對數,所以需要將 log2(n) 轉換為 ln(n)/ln(2)。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
double t,n;
while(cin >> t >> n){
cout << fixed << setprecision(3) << (-1*log(n)*t)/log(2) << "\n";
}
}