Найти все подмножества размера N в массиве, используя Ruby - PullRequest
5 голосов
/ 09 сентября 2011

Учитывая массив ['a', 'b', 'c', 'd', 'e', 'f'], как мне получить список всех подмножеств, содержащих два, три и четыре элемента?

Я довольно новичок в Ruby (переход от C #) и не уверен, каким будет "Ruby Way".

Ответы [ 2 ]

13 голосов
/ 09 сентября 2011

Проверить Массив # комбинация

Тогда как то так:

2.upto(4) { |n| array.combination(n) }
7 голосов
/ 09 сентября 2011

Немного подправил базовый человек:

2.upto(4).flat_map { |n| array.combination(n).to_a }
#=> [["a", "b"], ["a", "c"], ["a", "d"], ..., ["c", "d", "e", "f"]]
...