查找 Ruby 中数组的每个排列,包括子数组的排列
Find every permutation of an array in Ruby, including permutations with sub arrays
考虑一个数组:[4, 6, 9]
要求所有排列:(一、二、三位)
[[9],
[6],
[4],
[9, 6],
[9, 4],
[6, 9],
[6, 4],
[4, 9],
[4, 6],
[9, 6, 4],
[9, 4, 6],
[6, 9, 4],
[6, 4, 9],
[4, 9, 6],
[4, 6, 9]]
记录这个问题和我自己的发现,因为我在搜索时没有找到足够简单的东西。也许这可以帮助某人:
a = [4, 6, 9]
(1..a.length).flat_map { |n| a.permutation(n).to_a }
对于每个组合,只需切换方法,如下所示:
a = [4, 6, 9]
(1..a.length).flat_map { |n| a.combination(n).to_a }
考虑一个数组:[4, 6, 9]
要求所有排列:(一、二、三位)
[[9],
[6],
[4],
[9, 6],
[9, 4],
[6, 9],
[6, 4],
[4, 9],
[4, 6],
[9, 6, 4],
[9, 4, 6],
[6, 9, 4],
[6, 4, 9],
[4, 9, 6],
[4, 6, 9]]
记录这个问题和我自己的发现,因为我在搜索时没有找到足够简单的东西。也许这可以帮助某人:
a = [4, 6, 9]
(1..a.length).flat_map { |n| a.permutation(n).to_a }
对于每个组合,只需切换方法,如下所示:
a = [4, 6, 9]
(1..a.length).flat_map { |n| a.combination(n).to_a }