如何从数组中求平均值?

如果我有一个数组:

[0,4,8,2,5,0,2,6]

平均得到3.375。


当前回答

a = [0,4,8,2,5,0,2,6]
a.instance_eval { reduce(:+) / size.to_f } #=> 3.375

不使用instance_eval的版本如下:

a = [0,4,8,2,5,0,2,6]
a.reduce(:+) / a.size.to_f #=> 3.375

其他回答

[1,2].tap { |a| @asize = a.size }.inject(:+).to_f/@asize

简短,但使用实例变量

a = [0,4,8,2,5,0,2,6]
sum = 0
a.each { |b| sum += b }
average = sum / a.length

我认为最简单的答案是

list.reduce(:+).to_f / list.size

打印数组。求和/数组。计数是我做到的方式

无需重复数组(例如,非常适合一行程序):

[1, 2, 3, 4].then { |a| a.sum.to_f / a.size }