好吧,我已經在互聯網上搜索答案,也在我的紅寶石程序員搜索了幾個小時,但我無法整理出來。我正在編寫一個腳本,用於根據數組中的元素進行各種組合。紅寶石組合與陣列元素
ar = ["a","b","c","d"]
在這一點上,我能夠讓這些組合:
["a"],["a","b"],["a","b","c"],["a","b","c","d"],["b"],["b","c"],["b","c","d"],["c"],["c","d"],["d"]
這是確定的,但我找不到搜索這些組合,例如["a","c"] or ["a","c","d"] or ["a","d"]
等方式...
現在我的代碼如下所示:
def combinaties(array)
combinaties = []
i=0
while i <= array.length-1
combinaties << array[i]
unless i == array.length-1
array[(i+1)..(array.length-1)].each{|volgend_element|
combinaties<<(combinaties.last.dup<<volgend_element)
}
end
i+=1
end
end
你的問題是什麼......? – sethvargo 2012-01-04 22:02:31
你在尋找排列?你可以用數組索引來嘗試。 – three 2012-01-04 22:06:40
@three類數組有一個[置換方法](http://ruby-doc.org/core-1.9.3/Array.html#method-i-permutation)。 – steenslag 2012-01-04 22:32:15