ここまでのまとめです.
「0からnまでの和」や「n秒後の割合」のように一般にnに関する計算が
let rec f(n) = if n=0 then 《nが0の場合の式》 else 《f(n-1)を使った式》
のように定義することができます.
繰り返しのところで出てきた関数の定義をまとめると, 次のようになります.
(* 0からnまでの整数の和 *) let rec sum(n) = if n=0 then 0 else (sum(n-1))+n (* k+1からnまでの和にsを足した数 *) let rec sum_from(k,s,n) = if k=n then s else sum_from(k+1,s+k+1,n) (* 0からnまでの整数の和(別解) *) let sum_alt(n) = sum_from(0,0,n) (* テクネチウム99mが1秒間に崩壊する割合 *) let disintegration_per_sec = 0.0000320362394891 (* テクネチウム99mのx秒後の割合 *) let rec tc99m x = if x=0 then 1.0 else (1.0-.disintegration_per_sec)*.(tc99m (x-1)) (* 最初の割合がxだったテクネチウム99mのn秒後の割合 *) let rec tc99m_from(x,n) = if n=0 then x else tc99m_from(x *. (1.0 -. disintegration_per_sec), n-1) (* テクネチウム99mのn秒後の割合(別解) *) let tc99m_alt(n) = tc99m_from(1.0,n) (* テクネチウム99mの半減期 *) let rec half_life(n,r) = if r < 0.5 then n else half_life(n+1,r *. (1.0 -. disintegration_per_sec))
17.4.27 半減期 | 17.4.28 繰り返しのまとめ | 目次に戻る | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Tue, 05 Jul 2005 07:40:47 JST (1487d) |