Что у меня есть
a = [1,2,3,4]
=> [1, 2, 3, 4]
b = a.combination(2).to_a
=> [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
b.each_slice(2).to_a
=> [[[1, 2], [1, 3]], [[1, 4], [2, 3]], [[2, 4], [3, 4]]]
Я пытаюсь достичь уникальной комбинации
=> [[[1, 2], [3, 4]], [[1, 4], [2, 3]], [[1, 3], [2, 4]]]
Я пробовал с перестановкой, выравниванием и т. Д.но не могу найти магический рубиновый код!
Редактировать:
Ответ выше как
b = a.combination(2).to_a
=> [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
Чтобы быть более точным.
С
a = [1,2,3,4,5,6]
как получить
=> [[[1, 2], [3, 4], [5, 6]], [[1, 3], [2, 5], [4, 6]], [[1, 4], [2, 6], [3, 5]], [[1, 5], [2, 4], [3, 6]], [[1, 6], [2, 3], [4, 5]]]
, что составляет 5 массивов уникальных значений (1,2,3,4,5,6):
[1, 2], [3, 4], [5, 6]
[1, 3], [2, 5], [4, 6]
[1, 4], [2, 6], [3, 5]
[1, 5], [2, 4], [3, 6]
[1, 6], [2, 3], [4, 5]
Вы, похоже, изменили вопрос.Первоначально вы хотели массив массивов, каждый из которых имел пару массивов.Теперь вы хотите триплеты?
Да, потому что первый пример с [1,2,3,4] был слишком простым, а ответ не подходит для более сложного массива, такого как [1,2,3,4,5,6] и т. Д.