Towill

Towill

TowillTowill· 4년

질문c++ 멱집합 질문드립니다.

#include #include using namespace std; int n; string Data = "abcdef"; bool include[6]; void Powerset(int k) {     if (k == n)     {         for (int i = 0; i < n; i++) // i = 0 1 2 3 4 5         {             if (include[i])                 cout << Data[i] << "";         }         cout << endl;         return;     }     include[k] = false;     Powerset(k + 1);     include[k] = true;     Powerset(k + 1); } int main() {     n = Data.size();     Powerset(0); } 이렇게 짜여진 코드가 있어서 해석해보려고 하는데 막상 잘 안되더라고요.. 멱집합 자체는 알고있지만 구현과 해석이 어려워서 질문드립니다. if문과 for문 자체는 반복문이라서 어느정도 해석됩니다. 다만 아래의      include[k] = false;     Powerset(k + 1);     include[k] = true;     Powerset(k + 1); } int main() {     n = Data.size();     Powerset(0); } 이쪽서부터 이해가 많이 안됩니다.. 이 구문(문단) 하나씩 빼봐서 구동이 되나 싶었지만 구동이 안되더라고요.. 그 이유도 너무 모르겠어서 질문드립니다.
1.7K
3
0
윈비
윈비·2021-03-31
아래 영상의 26분27초부터 해당 코드를 설명하고 있습니다. https://www.youtube.com/watch?v=nkeMRRIVW9s&amp;t=1607s