본문바로가기
자유게시판
수학을 주제로 떠들어 보세요!
[수학 정보] 하노이탑 무조건 푸는 법
황금 열쇠 2019.11.09 17:43 조회 1289

규칙은 모두들 아시죠?

 

옮기는 최소 횟수: (2^n)-1

 

@푸는 법@

 

원반이 홀수개 일때:

제일작은원반을 3번째 막대로 (이하생략)→다른원반→제일작은원반 2번째→다른원반→제일작은원반 1번째→다른원반 (이걸 반복)

 

원반이 짝수개 일때:

제일작은원반을 2번째→다른원반→제일작은원반 3번째→다른원반→제일작은원반 1번째→다른원반 (이걸 반복)

  •  
    K→C≡N Lv.11 2019.11.10 01:16

    오~ 좋은 정보 감사합니다.

    오랜만에 눈이 뿅뿅 돓쟎쀏뉺 수학정보가 나왔네요!

    댓글 작성하기 좋아요0 댓글수0
  •  
    muse Lv.6 2019.11.10 01:44

    저걸 재귀 함수를 이용해 코딩으로 짜면 단계별로 이동 방법이 나옵니다.

    댓글 작성하기 좋아요0 댓글수3
    •  
      K→C≡N Lv.11 2019.11.10 01:51

      어떻게 코딩으로 짜면 좋을까요?

      생각만 해도 머리가 뚏뺡휉촭 돌아가서...

      좋아요0
    •  
      muse Lv.6 2019.11.10 02:55

      간단하게만 생각하면,

      void hanoi(int i, int x, int y, int z){

          if(i==1){

              printf("%d %d\n", x, y);

              return;

          }

          hanoi(i-1, x, z, y);

          printf("%d %d\n", x, y);

          hanoi(i-1, z, y, x);

      }

       

      이렇게 짜고 호출할 때는 hanoi(n, 1, 3, 2); 이렇게 하면 될겁니다.

      (n=원판의 개수)

       

      실행 안해보고 짠 거라 에러가 있을수도 있습니다.

      좋아요0
    •  
      K→C≡N Lv.11 2019.11.10 03:48

      앗 감사합니다. 에러는 제가 고쳤어요!

      좋아요0
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911