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

0
#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 (incl..
#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);
}

이쪽서부터 이해가 많이 안됩니다.. 이 구문(문단) 하나씩 빼봐서 구동이 되나 싶었지만 구동이 안되더라고요..

그 이유도 너무 모르겠어서 질문드립니다.

Towill 2021-03-30
Towill 님께서 2021-03-30에 C/C++에 올린 질문

댓글

1개의 답변

0
아래 영상의 26분27초부터 해당 코드를 설명하고 있습니다. https://www.youtube.com/watch?v=nkeMRRIVW9s&t=1607s  

아래 영상의 26분27초부터 해당 코드를 설명하고 있습니다.

https://www.youtube.com/watch?v=nkeMRRIVW9s&amp;t=1607s

 

윈비 2021-03-31
사탕 주기
윈비 님께서 2021-03-31에 C/C++에 올린 글
보관하기
0
 
Towill 2021-04-10
정말 감사합니다. 워낙 어려웠었는데 늦었지만 도움주셔서 감사합니다.

댓글

조회수 366
답글 1
URL