더북(TheBook)

이 알고리즘의 기본 연산은 원판 한 개를 한 기둥에서 다른 기둥으로 옮기는 작업이다. 원판이 n개인 퍼즐을 풀기 위해 알고리즘에서 원판을 옮기는 횟수를 M(n)이라고 하자. 앞에서 설명한 알고리즘(그림 1-13 참조)에 따르면 M(n)에 대해 다음과 같은 식을 세울 수 있다.

n > 1에 대해 M(n) = M(n - 1) + 1 + M(n - 1)

식을 더 간단히 바꾸면 다음과 같다.

n > 1에 대해 M(n) = 2M(n - 1) + 1

이렇게 어떤 수열의 n번째 항과 이전 항들 사이의 관계를 보여주는 식을 점화식이라고 부른다. 이런 경우, 수열의 n번째 항인 M(n)이 직전 항 M(n - 1)의 두 배에 1을 더한 값이 된다. 하지만 이 식만으로는 수열이 유일하게 정해지지 않는다. 수열의 첫 번째 항에 대한 내용이 없기 때문이다. 원판이 하나일 때는 한 번만 옮기면 되므로 점화식에 M(1) = 1이라는 조건을 더해주면 된다. 이 조건을 초기 조건이라고 부른다. 정리하면 원판이 n개인 하노이의 탑 퍼즐을 풀기 위한 재귀 알고리즘에서 이동 횟수는 다음과 같은 초기 조건과 점화식으로 정해진다.

n > 1에 대해 M(n) = 2M(n - 1) + 1

                  M(1) = 1

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.