我的代码需要多次计算数组与其自身的笛卡尔积。例如,如果我的数组是[1,2]我需要将这些值填充到三个槽中,结果将是:
[1,2]
[1,1,1] [1,1,2] [1,2,1] [1,2,2] [2,1,1] [2,1,2] [2,2,1] [2,2,2]
做到这一点最简单的方法是什么?
您可能正在寻找带有重复和 Ruby 的排列Array幸运的是来自标准库实现这个 http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-repeated_permutation:
Array
[1,2].repeated_permutation(3).to_a # [[1, 1, 1], [1, 1, 2], [1, 2, 1], [1, 2, 2], [2, 1, 1], [2, 1, 2], [2, 2, 1], [2, 2, 2]]