2016-02-13 49 views
-4

我在想方設法使用Ruby的combination方法來返回總和等於一定數量的組合。我可能對Ruby不夠熟悉,或者不知道是否可以將任何lambda表達式本質上添加到組合結果中,是否有辦法按照組合方法執行我想要的操作,還是非常有限?根據一些標準,你可以在組合結果周圍添加額外的標準嗎?基於值的紅寶石組合

+2

你的問題很模糊。添加一些細節並顯示一些(僞)代碼。 – Stefan

回答

0

combination返回Enumerator,然後您可以過濾得到您想要的組合。

拿這個例子:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].combination(2). 
    select { |n| n.reduce(:+) == 8 } # => [[1, 7], [2, 6], [3, 5]] 
+0

謝謝,如果你可以結合重複的數字==數字呢?如1 + 1 + 1 + 4 :) – PositiveGuy

+0

在這種情況下,您可以使用'repeated_combination'而不是'combination'。 – eugen