-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgeneralized_bernoulli_numbers.sf
26 lines (22 loc) · 1.48 KB
/
generalized_bernoulli_numbers.sf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/ruby
# Formula due to Srivastava-Todorov for computing the generalized Bernoulli numbers.
func generalized_bernoulli(n,l) {
sum(0..n, {|k|
binomial(n + l, n - k) * binomial(k + l - 1, k) * n!/(n+k)! * sum(0..k, {|j|
(-1)**j * binomial(k, j) * j**(n+k)
})
})
}
for l in (1..9) {
say ("B_{n,#{l}} = ", 15.of{|n| generalized_bernoulli(n,l) })
}
__END__
B_{n,1} = [1, -1/2, 1/6, 0, -1/30, 0, 1/42, 0, -1/30, 0, 5/66, 0, -691/2730, 0, 7/6]
B_{n,2} = [1, -1, 5/6, -1/2, 1/10, 1/6, -5/42, -1/6, 7/30, 3/10, -15/22, -5/6, 7601/2730, 691/210, -91/6]
B_{n,3} = [1, -3/2, 2, -9/4, 19/10, -3/4, -16/21, 5/4, 19/30, -63/20, -3/11, 45/4, -2141/546, -7601/140, 674/15]
B_{n,4} = [1, -2, 11/3, -6, 251/30, -9, 221/42, 11/3, -199/18, 3/5, 707/22, -27, -22429/182, 4871/21, 53581/90]
B_{n,5} = [1, -5/2, 35/6, -25/2, 24, -475/12, 4315/84, -475/12, -329/18, 395/4, -2385/44, -1225/4, 51913/91, 30245/28, -170485/36]
B_{n,6} = [1, -3, 17/2, -45/2, 274/5, -120, 19087/84, -1375/4, 9829/30, 171/2, -41065/44, 3855/4, 186962/65, -64011/7, -26393/4]
B_{n,7} = [1, -7/2, 35/3, -147/4, 1624/15, -294, 720, -36799/24, 237671/90, -59829/20, -15365/66, 75705/8, -938687/65, -267239/10, 410459/3]
B_{n,8} = [1, -4, 46/3, -56, 967/5, -1876/3, 13068/7, -5040, 1070017/90, -114562/5, 330157/11, -8540/3, -18790091/182, 1053218/5, 3559724/15]
B_{n,9} = [1, -9/2, 39/2, -81, 3207/10, -2403/2, 29531/7, -13698, 40320, -2082753/20, 9751299/44, -658179/2, 31224331/364, 33893919/28, -15634983/5]