9 lines
249 B
Text
9 lines
249 B
Text
func ramanujan_bernoulli_number(n) is cached {
|
|
|
|
return 1/2 if n.is_one
|
|
return 0 if n.is_odd
|
|
|
|
((n%6 == 4 ? -1/2 : 1) * (n+3)/3 - sum(1 .. (n - n%6)/6, {|k|
|
|
binomial(n+3, n - 6*k) * __FUNC__(n - 6*k)
|
|
})) / binomial(n+3, n)
|
|
}
|