2016-02-13 45 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