http://projecteuler.net/index.php?section=problems&id=121

確率を計算して、その逆数を求めるかんたんなお仕事

だったが、問題文を理解するのに多大な時間を費やした。

英語

きらいです。

prob m n | n ==  = 1
| m >  n = (prob (m-1) (n-1)+ m*prob (m-1) n)/(m+1)
| m == n = 1/ product [1..m+1]
prizeFund n = floor$ 1 / prob n' m
where n' = toRational n
m = toRational$ (n`div`2+1)
main = print.prizeFund$15