我试图获得数组排列的乘积:
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(:*)}
为什么这不起作用?并且,最好不创建2D数组,并使用散列或矩阵来解决这个问题吗?
答案 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);
}
}