내가 정확하게 당신이 모든 K-요소를 n 개의 요소가 주어진 집합의 하위 집합을 만들려는 당신의 질문을 이해합니다. 이것은 모든 (K-1) 나머지 요소 a[2] ... a[n]
의 - 요소 서브 세트와 제 소자 a[1]
결합
- 의해 순환 할 수 있고,
- 는
a[2] ... a[n]
의 - 요소 서브 세트의 모든 (K)를 첨가.
스위프트 코드 (약간 일반 그래서가 아니라 정수로 사용될 수 있음) :
func allSubsetsOf<T>(elements: [T], withCardinality k : UInt,
combinedWith prefix : [T] = [], startingWithIndex j : Int = 0) -> [[T]] {
if k == 0 {
return [prefix]
}
if j < elements.count {
let first = elements[j]
return allSubsetsOf(elements, withCardinality: k-1, combinedWith: prefix + [first], startingWithIndex : j+1)
+ allSubsetsOf(elements, withCardinality: k, combinedWith: prefix, startingWithIndex: j+1)
} else {
return []
}
}
예 :
let result1 = allSubsetsOf([1, 2, 3, 4, 5], withCardinality: 3)
println(result1)
// [[1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 3, 4], [1, 3, 5], [1, 4, 5], [2, 3, 4], [2, 3, 5], [2, 4, 5], [3, 4, 5]]
let result2 = allSubsetsOf(["a", "b", "c", "d"], withCardinality: 2)
println(result2)
// [[a, b], [a, c], [a, d], [b, c], [b, d], [c, d]]
배열 매개 변수의 목적은 무엇인가? – arcticmatt
배열의 요소 수를 지정합니다. – Carpsen90
arraySize는 무엇입니까? – arcticmatt