Скажите, что у меня есть массив [1,2,3], и я хочу, чтобы каждая комбинация этих чисел не превышала 4. Поэтому у меня было бы [1,2, 3] .someMethod (4), и это дало бы мне:Найти комбинации в Ruby, которые меньше определенного числа
[1,1,1,1]
[1,1,2]
[1,3]
[2,2]
до сих пор у меня есть:
(1..4).flat_map{|size| [1,2,3].repeated_combination(size).to_a }
, но это дает мне все возможные комбинации, в том числе те, которые превышают мой заданный предел. Есть ли хороший способ либо получить только комбинации, которые соответствуют моим лимитам?
Число повторяющихся комбинаций, которые суммируются с любым заданным числом, является конечным, только если числа положительны. Можем ли мы предположить, что это так? Где вы говорите: «не превышать 4», я полагаю, вы имеете в виду «чья сумма равна 4». Верный? –
Все ответы пока работают только тогда, когда данный массив содержит '1'. –
@ CarySwoveland Что значит? Почему решения не работают без '1'? – sschmeck