1

配列からペアを作成する簡単な方法はありますか?

たとえば、配列がある場合、[1,2,3,4]この配列を返そうとするにはどうすればよいでしょうか?

[[1,2], [1,3], [1,4], [2,1], [2,3], [2,4], [3,1], [3,2], [3,4], [4,1], [4,2], [4,3]] 

すべての要素は、それ自体を除く他のすべての要素とペアになり、重複が許可されます。

4

2 に答える 2

4

これにはArray#permutationを使用できます。

[1,2,3,4].permutation(2).to_a
# => [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]]
于 2013-01-16T17:44:06.893 に答える
2
[1,2,3,4].permutation(2).map{ |n| "(#{ n.join(",") })" }
# => ["(1,2)", "(1,3)", "(1,4)", "(2,1)", "(2,3)", "(2,4)", "(3,1)", "(3,2)", "(3,4)", "(4,1)", "(4,2)", "(4,3)"] 
于 2013-01-16T17:44:11.030 に答える