a = [0,4,8,2,5,0,2,6]
a.empty? ? nil : a.reduce(:+)/a.size.to_f
=> 3.375
Решает деление на ноль, целочисленное деление и легко читается. Может быть легко изменено, если вы решите, чтобы пустой массив возвращал 0.
Мне тоже нравится этот вариант, но он немного более объемный.
a = [0,4,8,2,5,0,2,6]
a.empty? ? nil : [a.reduce(:+), a.size.to_f].reduce(:/)
=> 3.375