47 lines
2.3 KiB
Text
47 lines
2.3 KiB
Text
;; Bernoulli numbers
|
|
;; http://rosettacode.org/wiki/Bernoulli_numbers
|
|
(define A (make-vector 100 0))
|
|
|
|
(define (B n)
|
|
(for ((m (1+ n))) ;; #1 creates a large integer
|
|
(vector-set! A m (Rational #1 (+ #1 m)))
|
|
(for ((j (in-range m 0 -1)))
|
|
(vector-set! A (1- j)
|
|
(mul (sub (vector-ref A (1- j)) (vector-ref A j)) j))))
|
|
(vector-ref A 0))
|
|
|
|
(for ((b (in-range 0 62 2))) (writeln b (B b))) →
|
|
|
|
0 1 / 1
|
|
2 1 / 6
|
|
4 -1 / 30
|
|
6 1 / 42
|
|
8 -1 / 30
|
|
10 5 / 66
|
|
12 -691 / 2730
|
|
14 7 / 6
|
|
16 -3617 / 510
|
|
18 43867 / 798
|
|
20 -174611 / 330
|
|
22 854513 / 138
|
|
24 -236364091 / 2730
|
|
26 8553103 / 6
|
|
28 -23749461029 / 870
|
|
30 8615841276005 / 14322
|
|
32 -7709321041217 / 510
|
|
34 2577687858367 / 6
|
|
36 -26315271553053477373 / 1919190
|
|
38 2929993913841559 / 6
|
|
40 -261082718496449122051 / 13530
|
|
42 1520097643918070802691 / 1806
|
|
44 -27833269579301024235023 / 690
|
|
46 596451111593912163277961 / 282
|
|
48 -5609403368997817686249127547 / 46410
|
|
50 495057205241079648212477525 / 66
|
|
52 -801165718135489957347924991853 / 1590
|
|
54 29149963634884862421418123812691 / 798
|
|
56 -2479392929313226753685415739663229 / 870
|
|
58 84483613348880041862046775994036021 / 354
|
|
60 -1215233140483755572040304994079820246041491 / 56786730
|
|
|
|
(B 1) → 1 / 2
|