# Math# Exponential Decay# Logarithm

e990 - 奇怪的隕石

🔗 前往 ZeroJudge 原題

題目描述

題目描述了隕石的放射性衰變現象,其質量會隨著時間呈指數衰減。給定隕石的半衰期 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";
	}
}

Discussion