2017-01-04 14 views
0

2次元配列= [[12,34,35,21],[10,14,23,17],...]無限大です。2次元配列を合計する方法

私はこれをRubyで行いたいと思います。

arr1 = [array[0][0]+array[1][0]+array[n+1][0]..., 
array[0][1]+array[1][1]+array[n+1][1]..., 
array[0][2]+array[1][2]+array[n+1][2]..., 
array[0][3]+array[1][3]+array[n+1][3]...] 

結果(4×4)

​​

任意のアイデア?

+0

"無限大" は何を意味するのに役立ちます願っていますか? – Stefan

+0

それは2x4ではありませんが、16x4または24x4 ......無限* 4 – user7373737

答えて

2

あなたはルビー2.4以上を使用している場合は、あなたがあることを出力するためにArray#sum方法

array.transpose.map(&:sum) 
# => [22, 48, 58, 38] 

を使用することができます

array = [[12,34,35,21],[10,14,23,17]] 

array.transpose.map {|a| a.inject(:+) } 
# => [22, 48, 58, 38] 

を個々のアレイをArray#transposeを使用して、合計することができます配列または配列

array.transpose.map {|a| [a.sum] } 
# => [[22], [48], [58], [38]] 
+0

応答のSanthoshありがとうございます、しかし私の配列は無限です、これはあなたが2x4を持っている場合にのみ動作します – user7373737

+1

これは2x4同じサイズの配列の有限配列の場合に機能します。 – Santhosh

+3

あなたの配列は無限ではありません。無限の配列をメモリに格納することはできません。単純な理由は、コンピュータのメモリが限られており、有限の無限の量を無限の空間に格納することができないということです。 http://av1611.com/kjbp/kjv-dictionary/infinite.html –

1

ルビーコード

h = Hash.new(0) 
arr = [[12, 34, 35, 21], [10, 14, 23, 17], [1, 2, 3]] #Any size of nested array 
arr.each do |a| 
    a.each_with_index do |n,i| 
    h[i]+=n 
    end 
end 
h.values.map{|a| [a]} 

は、それが

関連する問題