вот в чем проблема
У меня есть массив:
a = [1, 2, 3, 4]
и хочу получить:
b = [[1, 2, 3], [1, 3, 4], [1, 2, 4], [2, 3, 4]]
как лучше? спасибо!
Вы ищете все уникальные наборы из 3 элементов из набора 4.
Используйте метод комбинации Array #:
a = [1, 2, 3, 4] b = a.combination(3).to_a
вывод:
=> [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
Подробнее:
Массив # комбинации Wikipedia Combination
Вот моя первая реализация.(Но производительность сосет, я думаю)
array = [1,2,3,4] b = [] array.each{|e| c = array.clone; c.delete(e); b << c} # b.sort!