如何从数组中生成所有可能的对

时间:2015-03-29 14:01:16

标签: ruby arrays

a = ["a","b","c"]
a.each_cons(2).to_a # => [["a", "b"], ["b", "c"]]

我想要这个数组中的三个可能的对

3 个答案:

答案 0 :(得分:1)

您可以使用Array#permutation生成所有组合的子阵列。

a.permutation(2).to_a
# => [["a", "b"], ["a", "c"], ["b", "a"], ["b", "c"], ["c", "a"], ["c", "b"]] 

在此之后,您可以使用Array#sample选择3个随机数组(假设您要选择随机子数组)。这里:

a.permutation(2).to_a.sample(3)
# => [["c", "b"], ["c", "a"], ["b", "c"]]

答案 1 :(得分:0)

试试这个:

a = ["a","b","c"]
a.permutation(2).to_a.take(3)
#  => [["a", "b"], ["a", "c"], ["b", "a"]] 

答案 2 :(得分:0)

a = ["a","b","c"]
a.combination(2).to_a # => [["a", "b"], ["a", "c"], ["b", "c"]]