averages_pythagorean_means.sf 451 B

123456789101112131415161718
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Averages/Pythagorean_means
  4. #
  5. func A(a) { a.sum / a.len };
  6. func G(a) { a.prod.root(a.len) };
  7. func H(a) { a.len / a.map{.inv}.sum };
  8.  
  9. say("A(1,...,10) = ", A(1..10));
  10. say("G(1,...,10) = ", G(1..10));
  11. say("H(1,...,10) = ", H(1..10));
  12. assert_eq(Math.arithmetic_mean(1..10 -> ...), A(1..10))
  13. assert_eq(Math.geometric_mean(1..10 -> ...), G(1..10))
  14. assert_eq(Math.harmonic_mean(1..10 -> ...), H(1..10))