책 읽다가 이해가 안가는 부분이 있어서 질문드립니다.

  • juhosung
    juhosung

    단순한 방법으로 문제 접근을 하는 예제로 든 부분이 있는데요.
    (책30 페이지 입니다.)
    N(N<=30)개의 사탕을 세 명의 어린이에게 가능한 공평하게 나눠주려고 하는 문제입니다.. (사탕의 무게는 20이하의 정수입니다.)
    해결과정에서 3^N(3^30 => 205조) 방법에서 205조개의 경우의 수 중 각 어린이의 사탕 총량이 같은 경우를 하나로 합쳤을 때에 (N*20)^3
    이 된다고 했는데.. 이 부분이 이해가 안 갑니다.
    (N*20)^3 이란 뜻이...
    어린이 각각 N개의 사탕을 취할 수 있고... 무게는 20가지..
    어린이가 3명이니깐 세제곱이 된건가요..???
    (N*20)^3은 왜 각 어린이 사탕총량이 가튼 경우는 포함이 안 하는 걸까요..? 아무리 생각해도 이해가 안가네요.ㅠㅠ
    답변 부탁드릴께요...


    10년 전
7개의 댓글이 있습니다.
  • hyunhwan
    hyunhwan

    찾아보니 비슷한 질문에 대한 답변이 있습니다. 한번 참고해 보시는게 어떨련까요? 링크 첨부합니다.

    http://algospot.com/forum/read/1778/#c8438


    10년 전 link
  • Being
    Being

    정확히 계산했다기보다는 상한을 계산한 것이라 생각하시면 될 것 같네요. 세 어린이가 받은 사탕의 무게의 총 합이 20N 이하여야 하니 실제로는 더 작겠지만, 상수 배 정도의 차이가 나므로 무시하고 계산해도 될 것 같습니다.


    10년 전 link
  • hyunhwan
    hyunhwan

    조금 더 설명하자면, 책에 처음 나온 방법은 다음과 같은 상태 공간으로 답을 구하는 것입니다. 예를 들어 사탕의 개수가 4개일 경우에 (1,2,1,3)와 같은 상태공간을 헤아리게 됩니다. 여기서 숫자는 첫번째 사탕은 1번에게, 두번째 사탕은 2번 어린이에게, 세번째 사탕은 1번 어린이에게, 마지막 사탕은 3번 어린이에게 건네준다는 이야기지요.

    하지만 우리가 궁금한 것은 몇번째 어린이에게 어떤 사탕을 주었는가가 궁금한게 아니라, 가능한 최소의 차이가 얼마인가가 궁금합니다. 따라서 다음과 같이 (120, 140, 160) 과 같이 3차원으로 상태공간을 줄일 수 있게 됩니다. 이는 첫번째 어린이에게는 120만큼의 사탕을 주고, 두번째 어린이에게는 140만큼의 사탕을, 마지막 어린이에게는 160만큼의 사탕을 주었다는 것이지요. 이를 다시 (a, b, c)라고 표현하면 각각 a, b, c에 들어갈 수 있는 숫자의 후보는 최소 0, 최대 20*N이 들어갈 수 있습니다. 따라서 (N*20)^3 가량의 상태공간을 탐색할 수 있는 문제로 바뀌게 되고, 3^N >> (N*20)^3이기 때문에 보다 빠른 시간에 답을 구 할 수 있게 된다는 말입니다.

    한번 읽어보시고 이해 안되시는 부분은 댓글 달아주시면 감사하겠습니다!


    10년 전 link
  • juhosung
    juhosung

    음 그런데 20*N으로 각 어린이가 가질 수 있는 사탕의 무게양을 정했잖아요.... 책에서는 서로 가지는 사탕의 무게가 겹치는 경우의 수를 하나로 보았을때 이러한 방법으로 센다고 했는데.. 제 생각에는 20*N 이 경우에도 서로 겹치는 경우의 수가 여러번 있을 것 같아요..


    10년 전 link
  • hyunhwan
    hyunhwan

    @juhosung // 물론 (a,b,c)와 같이 헤아리는 경우에도 같은 경우가 여러개 존재할 수 있지요. 다만 이렇게 볼 경우 앞서 이야기한 3^N 보다는 많이 상태 공간이 많이 줄어들게 된다는 겁니다. 이를 토대로 다음에 최대한 경우의 수를 줄이기 위해서 최대 최소의 차이를 이용하거나, a < b < c 의 순서를 유지하여 1/6로 줄인다거나 하는 추가적인 방법을 소개하고 있고요.


    10년 전 link
  • hyunhwan
    hyunhwan

    그리고 사탕의 무게가 겹치는 경우의 수를 하나로 보는것은 아닌 것 같습니다.


    10년 전 link
  • juhosung
    juhosung

    아하..넵!! N*20이 어떤 과정을 통해 도출됬는지 확실히 이해가 갔습니다. 감사합니다..^^ 아.. 제가 헷갈렸던게.. 사탕의 총량이랑.. 사탕의 총 무게랑 햇갈렸네요..ㅠㅠ이런.. 어쨋든 설명해주셔서 정말 감사합니다.^^


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.