查找Ruby数组数组的所有排列

时间:2014-01-21 22:08:49

标签: ruby-on-rails ruby

假设我有以下数组输入数组:

[[1],[2,3],[4,5],[6]]

我想生成这样的所有排列:

[[1,2,4,6],[1,2,5,6],[1,3,4,6],[1,3,5,6]]

这样做有什么好的Ruby方法?或者真的任何这样做的方式?我觉得这是一个我看不到的优雅解决方案。

1 个答案:

答案 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]]