faulhaber_s_formula_2.sf 331 B

123456789101112131415161718
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Faulhaber%27s_formula
  4. #
  5. func faulhaber_s_formula(p) {
  6. "1/#{p + 1} * (" + gather {
  7. { |j|
  8. take "#{binomial(p+1, j) * j.bernfrac -> as_rat}*n^#{p+1 - j}"
  9. } << 0..p
  10. }.join(' + ') + ")"
  11. }
  12. { |p|
  13. printf("%2d: %s\n", p, faulhaber_s_formula(p))
  14. } << ^10