再帰をつかって「誕生日問題」のプログラムを書いてみました。
誕生日問題 再帰使用版
先日は for をつかって 書いてましたが、
今回は 同じ問題を 再帰を使って書いてみました。
scala での初再帰(なんのこっちゃ)です。
def f( i:Int ):Double = { def ff( i:Int, acc:Double ):Double = i match { case _ if i == 0 => acc case _ => ff(i - 1, fff(i) * acc) } def fff(i:Int):Double = { (365 - i.toDouble) / 365 } ff(i,1) } println("kekka: 50 = " + (1.0 - f(50)))