在2D阵列中相乘

时间:2015-11-02 21:13:49

标签: arrays ruby

我试图获得数组排列的乘积:

orig_arr = (89..99).to_a

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

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

我最好的猜测是枚举,但reduceeach内无法运作:

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

为什么这不起作用?并且,最好不创建2D数组,并使用散列或矩阵来解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您可以使用Array#map代替orig_arr = (89..99).to_a orig_arr.permutation(2).map { |set| [set.reduce(:*)] } # => [[8010], [8099], [8188], [8277], [8366], [8455], . . . ]]

使其有效
if(Backpack.contains(userInput)) {
      Backpack.remove(userInput);
    }

}