ruby数组元素分组

时间:2012-03-12 20:05:14

标签: ruby arrays element grouping

这是问题

我有一个数组:

a = [1, 2, 3, 4]

并希望得到:

b = [[1, 2, 3], [1, 3, 4], [1, 2, 4], [2, 3, 4]]

最好的方法是什么?谢谢!

2 个答案:

答案 0 :(得分:3)

您正在寻找一组4个中所有独特的3个元素集。

使用Array#组合方法:

a = [1, 2, 3, 4]
b = a.combination(3).to_a

输出:

=> [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]

更多信息:

Array#combination
Wikipedia Combination

答案 1 :(得分:0)

这是我的第一个实现。 (但我觉得性能很糟糕)

array = [1,2,­3,4]
b = []
array.each­{|e| c = array­.clone; c.del­ete(e); b << c}
# b.sort!