central_trinomial_triangle.sf 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/ruby
  2. # See also:
  3. # https://oeis.org/A097893
  4. # https://mathworld.wolfram.com/CentralTrinomialCoefficient.html
  5. func central_trinomial_triangle(num, callback) {
  6. var row = [1]
  7. { |n|
  8. callback(row)
  9. row = [1, {|i| row[i-1] + row[i] + row[i+1] }.map(0 .. n-2)..., 1]
  10. } << 1..num
  11. }
  12. central_trinomial_triangle(12, {|row|
  13. row.map { "%4s" % _ }.join(' ').say
  14. })
  15. say "\n=> Partial sums of the central trinomial coefficients:"
  16. say gather {
  17. central_trinomial_triangle(15, {|row| take(row.sum) })
  18. }
  19. say gather {
  20. ^15 -> map { |n|
  21. take(0 .. n>>1 -> sum_by {|k|
  22. binomial(n + 1, 2*k + 1) * binomial(2*k, k)
  23. })
  24. }
  25. }
  26. __END__
  27. 1
  28. 1 1
  29. 1 3 1
  30. 1 5 5 1
  31. 1 7 11 11 1
  32. 1 9 19 29 23 1
  33. 1 11 29 57 71 53 1
  34. 1 13 41 97 157 181 125 1
  35. 1 15 55 151 295 435 463 307 1
  36. 1 17 71 221 501 881 1193 1205 771 1
  37. 1 19 89 309 793 1603 2575 3279 3169 1977 1
  38. 1 21 109 417 1191 2705 4971 7457 9023 8425 5147 1
  39. => Partial sums of the central trinomial coefficients:
  40. [1, 2, 5, 12, 31, 82, 223, 616, 1723, 4862, 13815, 39468, 113257, 326198, 942425]
  41. [1, 2, 5, 12, 31, 82, 223, 616, 1723, 4862, 13815, 39468, 113257, 326198, 942425]