2012-03-12 170 views
0

這裏的問題是紅寶石數組元素分組

我有一個數組:

a = [1, 2, 3, 4] 

,並希望得到:

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

什麼是最好的方法是什麼?謝謝!

+1

在我看來,你已經完成! – 2012-03-12 20:06:26

+0

[1,2,3,4,5,6,7,8] – ijani 2012-03-12 20:07:10

+0

你是在問一個人爲你做作業嗎? – gtd 2012-03-12 20:10:05

回答

3

您正在尋找所有唯一集3元出一套4

使用陣列#組合方法的:

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

0

這是我的第一個實現。 (但性能吸我猜)

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