私が持っているもの
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]]]
これは、一意の値 (1,2,3,4,5,6) の 5 つの配列です。
[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] などのより複雑な配列には適合しません。