17.4.27 半減期

放射性物質の半減期を求める問題を考えてみましょう. review_s17.4.24 原子の崩壊では時間を与えて割合を求めていましたが, 今度は逆に与えられた割合(半減期なので0.5)になるのに要する時間を求めることになります.

このような問題は

のように考えることができます. つまり,

ですから, 関数の定義は次のようになります:

# let rec half_life(n,r) = return2 if r < 0.5 return2 then n return2 else half_life(n+1,r *. (1.0 -. disintegration_per_sec)) ;; return2 val half_life : int * float -> int = <fun>

そして半減期は 0秒後の割合が1.0として求めてやればよいので,

# half_life(0,1.0) ;; return2 - : int = 21636

のように 21636 秒であることが分かります. これは

# 21636.0 /. 60.0 /. 60.0;; return2 - : float = 6.01000000000000068

であるから約6時間ということですね. 前に定義した tc99m_alt を使って検算すると, 確かに 21636 秒後の割合は 0.5になっています.

# tc99m_alt(21636) ;; return2 - : float = 0.5