几个Ruby数组的平均值

时间:2013-07-05 15:09:10

标签: ruby arrays

我有三个Ruby数组:

[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]

如何取位置0中的所有三个数字的平均值,然后定位1等,并将它们存储在名为“平均”的新数组中?

2 个答案:

答案 0 :(得分:7)

a = [1, 2, 3, 4]
b = [2, 3, 4, 5]
c = [3, 4, 5, 6]

a.zip(b,c)
   # [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]
.map {|array| array.reduce(:+) / array.size }
   # => [ 2,3,4,5]

答案 1 :(得分:0)

试试这个:

arr = ([1, 2, 3, 4] + [3, 4, 5, 6] + [2, 3, 4, 5])
arr.inject(0.0) { |sum, el| sum + el } / arr.size

串联可以通过多种方式完成,具体取决于存储阵列的方式。

作为一种语法糖,你也可以这样做:

arr.inject(:+).to_f / arr.size