如何在 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)
我想要总排列对及其数量 像。 如果输入数组是 {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)