我有三个Ruby数组:
[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]
如何取位置0
中的所有三个数字的平均值,然后定位1
等,并将它们存储在名为“平均”的新数组中?
答案 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