要将一个数组进行排列组合,可以使用 Ruby 的 Array
类的 repeated_permutation
和 permutation
方法。
以下是一个例子,假设有一个数组 arr
:
arr = [1, 2, 3]
我们可以通过 repeated_permutation
方法得到所有元素可重复的排列组合:
arr.repeated_permutation(2).to_a # => [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]
这个例子中,arr.repeated_permutation(2)
表示在 arr
中选取两个元素进行排列组合,并且每个元素可以重复出现。
我们也可以通过 permutation
方法得到所有元素不重复的排列组合:
arr.permutation(2).to_a # => [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]
这个例子中,arr.permutation(2)
表示在 arr
中选取两个不同的元素进行排列组合。
如果选取的元素数量与数组长度相等,则可以省略第一个参数。例如,要得到 arr
中所有元素可重复的三个排列组合,可以这样写:
arr.repeated_permutation(3).to_a # => [[1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 2, 1], [1, 2, 2], [1, 2, 3], [1, 3, 1], [1, 3, 2], [1, 3, 3], [2, 1, 1], [2, 1, 2], [2, 1, 3], [2, 2, 1], [2, 2, 2], [2, 2, 3], [2, 3, 1], [2, 3, 2], [2, 3, 3], [3, 1, 1], [3, 1, 2], [3, 1, 3], [3, 2, 1], [3, 2, 2], [3, 2, 3], [3, 3, 1], [3, 3, 2], [3, 3, 3]]