如何在 swift 中给定大小为 n 的数组中生成 r 个元素的组合?

How to generate combinations of r elements in a given array of size n in swift?

我想要总排列对及其数量 像。 如果输入数组是 {1, 2, 3, 4} 并且 r 是 2。 那么输出应该是 {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4} 和 {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]]

无需重新发明轮子。 Apple 提供了一系列有用且经过优化的算法。

将包 Swift Algorithms 添加到您的项目

然后写

import Algorithms

let array = [1, 2, 3, 4]
    
let permutations = array.permutations(ofCount: 2)
print(Array(permutations), permutations.count)