123456789101112131415161718192021222324 |
- #!/usr/bin/ruby
- # Computing Bernoulli numbers from Pascal's triangle
- # See also:
- # https://en.wikipedia.org/wiki/Bernoulli_number#Connection_with_Pascal’s_triangle
- func pascal_bernoulli_number(n) {
- var A = []
- for i in (0 ..^ n) {
- for k in (0 ..^ n) {
- A[i][k] = (k > i+1 ? 0 : binomial(i+2, k))
- }
- }
- A.det / (n+1)!
- }
- for n in (0..30) {
- say "B(#{n}) = #{pascal_bernoulli_number(n).as_rat}"
- }
|