1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/ruby
- # Author: Daniel "Trizen" Șuteu
- # Date: 24 February 2018
- # https://github.com/trizen
- # A new recurrence for computing the logarithmic numbers (also known as Gregory coefficients).
- # Formula:
- # a(0) = 1
- # a(n) = Sum_{k=0..n-1} (-1)^(n - k + 1) * a(k) / (n - k + 1)
- # See also:
- # https://oeis.org/A002206 (numerators)
- # https://oeis.org/A002207 (denominators)
- # Wikipedia:
- # https://en.wikipedia.org/wiki/Gregory_coefficients
- func a((0)) { 1 }
- func a(n) is cached {
- sum(^n, {|k| (-1)**(n - k + 1) * a(k) / (n - k + 1) })
- }
- for n in (0..30) {
- printf("G(%2d) = %40s / %s\n", n, a(n) -> nude)
- }
- __END__
- G( 0) = 1 / 1
- G( 1) = 1 / 2
- G( 2) = -1 / 12
- G( 3) = 1 / 24
- G( 4) = -19 / 720
- G( 5) = 3 / 160
- G( 6) = -863 / 60480
- G( 7) = 275 / 24192
- G( 8) = -33953 / 3628800
- G( 9) = 8183 / 1036800
- G(10) = -3250433 / 479001600
- G(11) = 4671 / 788480
- G(12) = -13695779093 / 2615348736000
- G(13) = 2224234463 / 475517952000
- G(14) = -132282840127 / 31384184832000
- G(15) = 2639651053 / 689762304000
- G(16) = -111956703448001 / 32011868528640000
- G(17) = 50188465 / 15613165568
- G(18) = -2334028946344463 / 786014494949376000
- G(19) = 301124035185049 / 109285437800448000
- G(20) = -12365722323469980029 / 4817145976189747200000
- G(21) = 8519318716801273673 / 3549475982455603200000
- G(22) = -1232577428602510264423 / 547454472117564211200000
- G(23) = 530916160966849 / 250639102771200000
- G(24) = -101543126947618093900697699 / 50814724101952310083584000000
- G(25) = 439498633365840119748791 / 232561666370491121664000000
- G(26) = -64252172543850268483123097 / 35869217013142807117824000000
- G(27) = 928685729779901399375 / 545814099444746491527168
- G(28) = -1718089509598695642524656240811 / 1061011439248764234545233920000000
- G(29) = 5150046951561533494311 / 3335806532892753920000000
- G(30) = -44810233755305010150728029810063187 / 30391611665841602734313680404480000000
|