是)我有的
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 个 uniq 值数组(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] 等等。