乘以

2015-11-02 81 views
1

我試圖得到一個陣列的排列的產品:乘以

orig_arr = (89..99).to_a 

perm = [[89, 90], [89, 91], [89, 92], [89, 93]...] 

need = [[8010], [8099], [8188]...] 

我最好的猜測是枚舉,但reduce內不each功能:

perm.each{|set| set.reduce(:*)} 

這爲什麼不工作?而且,是不是創建一個二維數組,並使用散列或矩陣來解決這個問題呢?

回答

3

你可以把它用Array#map,而不是each工作:

orig_arr = (89..99).to_a 
orig_arr.permutation(2).map { |set| [set.reduce(:*)] } 
# => [[8010], [8099], [8188], [8277], [8366], [8455], . . . ]] 
+1

@K中號Rakibul伊斯蘭教謝謝你,做的伎倆。我會研究#map。 – Onyooo

+1

輝煌!感謝第二個應用程序。 #map顯然是我需要非常熟悉的東西。再次感謝! – Onyooo

+0

是的,它非常有用和強大。你是最受歡迎的:) –