4

我有三个 Ruby 数组:

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

如何取 position 0、 position1等所有三个数字的平均值并将它们存储在一个名为“Average”的新数组中?

4

2 回答 2

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]
于 2013-07-05T15:15:27.123 回答
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
于 2013-07-05T15:13:29.487 回答