내가 종이로 생각한 방식이 텍스트 북에서 제안한 의사 코드와 약간 다른 알고리즘을 구현하려고합니다. 나는 아래에있는 의사 코드의 2 개 발췌문이 각각 '포함하고'각각의 부분 집합을 생성해야 할 때 시간 복잡성의 순서에 따라 큰 차이없이 똑같은 것을 할 것이라는 것을 자신에게 확신시키고 자 노력하고있다. 나는 나를 설득 할 엄밀한 문제를 생각해 내는데 어려움을 겪고있다.의사 코드의 간단한 부분 2 개와 동등한
T와 A는 유한 집합 I의 하위 집합 집합입니다. 어떤 집합이나 하위 집합도 비어 있지 않으며 모든 집합에는 '개수'라는 "필드"가 있습니다.
코드 조각 한 :
For-each t in T do {
A_t = A intersected with the set of all non-empty subsets of t
For-each a in A_t do {
a.count++
}
}
발췌문 두가 :
여기For-each a in A do {
a.count = count(a, T)
}
수는 그것은 당신이 당신의 부분 집합 생성을 구현하는 방법에 따라 달라집니다 및 기능을 포함
count(a, T) {
c = 0
For-each t in T do {
if (t contains a) {
c++
}
return c
}
contains 함수는 무엇을합니까? t가 a의 서브 세트 인 경우는 true를 돌려줍니다. – dfb