|
Tower of Hanoi


|
According to the legend of the Tower of Hanoi (originally the "Tower of Brahma" in a temple in the Indian city of Benares), the temple priests are to transfer a tower consisting of 64 fragile disks of gold from one part of the temple to another, one disk at a time. The disks are arranged in order, no two of them the same size, with the largest on the bottom and the smallest on top. Because of their fragility, a larger disk may never be placed on a smaller one, and there is only one intermediate location where disks can be temporarily placed. It is said that before the priests complete their task the temple will crumble into dust and the world will vanish in a clap of thunder. Does this make mathematical sense? In the classic math problem, there are three posts. Disks of different sizes (call the number of disks "n") are placed on the lefthand post, arranged by size with the smallest on top. You are to transfer all the disks to the righthand post in the fewest possible moves, without ever placing a larger disk on a smaller one. One move is considered to be moving one disk from one post to another post.
How many moves will it take to transfer n disks from the left post to the right post? Let's look for a pattern in the number of steps it takes to move just one, two, or three disks. We'll number the disks starting with disk 1 on the bottom. 1 disk: 1 move
![]()
2 disks: 3 moves
Move 2: move disk 1 to post C Move 3: move disk 2 to post C
![]()
3 disks: 7 moves
Move 2: move disk 2 to post B Move 3: move disk 3 to post B Move 4: move disk 1 to post C Move 5: move disk 3 to post A Move 6: move disk 2 to post C Move 7: move disk 3 to post C ![]()
Can you work through the moves for transferring 4 disks? It should take you 15 moves. How about 5 disks? 6 disks? Do you see a pattern? A. Recursive patternFrom the moves necessary to transfer one, two, and three disks, we can find a recursive pattern - a pattern that uses information from one step to find the next step - for moving n disks from post A to post C:
Unfortunately, if we want to know how many moves it will take to transfer 100 disks from post A to post B, we will first have to find the moves it takes to transfer 99 disks, 98 disks, and so on. Therefore the recursive pattern will not be much help in finding the time it would take to transfer all the disks. However, the recursive pattern can help us generate more numbers to find an explicit (non-recursive) pattern. Here's how to find the number of moves needed to transfer larger numbers of disks from post A to post C, remembering that M = the number of moves needed to transfer n-1 disks from post A to post C:
B. Explicit Pattern
  1 1   2 3   3 7   4 15   5 31
  1 2^1 - 1 = 2 - 1 = 1   2 2^2 - 1 = 4 - 1 = 3   3 2^3 - 1 = 8 - 1 = 7   4 2^4 - 1 = 16 - 1 = 15   5 2^5 - 1 = 32 - 1 = 31
So the formula for finding the number of steps it takes to transfer n disks from post A to post B is:
From this formula you can see that even if it only takes the monks
one second to make each move, it will be
From the Dr. Math archives
On the Web
LHS: Tower of Hanoi History & Instructions (Java) Tower of Hanoi Demonstrations Towers of Hanoi - play the game, explore the math Working out recursive solutions |
[Privacy Policy] [Terms of Use]

Math Forum Home ||
Math Library ||
Quick Reference ||
Math Forum Search

The Math Forum is a research and educational enterprise of the Goodwin College of Professional Studies.