假设我有以下数组输入数组:
[[1],[2,3],[4,5],[6]]
我想生成这样的所有排列:
[[1,2,4,6],[1,2,5,6],[1,3,4,6],[1,3,5,6]]
这样做有什么好的Ruby方法?或者真的任何这样做的方式?我觉得这是一个我看不到的优雅解决方案。
答案 0 :(得分:6)
您需要的是笛卡尔积。类似的东西:
[1].product([2,3],[4,5],[6]) # => [[1, 2, 4, 6], [1, 2, 5, 6], [1, 3, 4, 6], [1, 3, 5, 6]]