乘以

2015-11-02 77 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

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