Towers of Hanoi
From Math Images
|Towers of Hanoi|
Basic DescriptionThe standard game begins with 3 poles, one of which (the starting pole) has some natural number, k, disks placed around it in increasing size from top to bottom, while the other poles start out empty.
- Goal: Move all k disks from the start pole (typically the leftmost) to the specified end pole (typically the rightmost), following these rules:
- Only one disk may be moved at one time.
- Each move consists of moving the top disk of one rod onto the top of another rod.
- Each disk must be placed on a larger disk.
To fully understand the end of the world legend, one must understand the relationship between the number of disks and the amount of moves. As it turns out, this relationship is exponential; if the priests move one disk per second, then they would need 18,446,744,073,709,551,615 seconds, or 584.54 billion years, to complete the game. Given that this is about 58.5 times the life span of the Sun, the legend probably overestimates the amount of time we have until the world ends (unless we can leave the Earth before the Sun expands too much).
Play the Game
You can play the game Towers of Hanoi right here! This applet will help you understand how the game works.
Example of Solving the Game
Solving Towers of Hanoi with 4 disks.
A More Mathematical Explanation
The Recursive SolutionThis game becomes more interesting when we try to figure out the quickest [...]
The Recursive Solution
This game becomes more interesting when we try to figure out the quickest solution to any Towers of Hanoi game. We will first reason through the ideal minimum amount of steps to solve a game with k-disks, then provide an algorithm that requires the same amount of moves as this ideal minimum. Define to be the minimum amount of moves needed for k disks. It is obvious that:
Assume that we know is true. Note that to move the kth(bottom) disk, we must first move the top k-1 disks. In addition, we must move the kth disk at least (and hopefully only) once. Finally, the top k-1 disks must be placed on top of the kth disk at some point to complete the game. Thus, the ideal recursive function for is:
Now we will provide an algorithm that requires the same amount of steps as . Since and do not change, we can assume that the (k-1)th game is solvable. One algorithm to solve the kth game is as follows:
- 1. Move the top k-1 disks to Pole B (assuming we start on Pole A and end on Pole C).
- 2. Move the kth disk to Pole C.
- 3. Move the k-1 disks on Pole B to Pole C, on top of the kth disk.
The total steps for this are:
Thus our ideal minimum function is a plausible solution to any Towers of Hanoi game.
The Explicit Formula
We will show by induction that the explicit formula is
The base case is satisfied:
- as desired.
Assume the (k-1)th case holds. Then
Thus we have shown the non-recursive equation holds for any Towers of Hanoi game with k disks.
Back to the Legend
Now that we have the equation to determine the amount of moves needed for any number of disks, we can verify the numbers listed in the Basic Description. A Towers of Hanoi game with 64 disks will take:
If the priests move 1 disk per second, then they will need:
Assuming that the Sun has a life span of 10 billion years, the time predicted by the legend is times longer than the Sun's lifespan.
Why It's InterestingTowers of Hanoi is a popular example in introductory computer science courses; programming it is relatively simple but not trivial. The recursive nature of the game teaches recursion, while the simple interface of the game introduces basic graphics processing. In addition, the game's exponential solution shows why computer scientists dread exponential time; it takes far long to compute. Assuming the average computer can do 100 million operations per minute, then solving Towers of Hanoi with 64 disks would take the computer 5845.42 years to complete.
- There are currently no teaching materials for this page. Add teaching materials.
Leave a message on the discussion page by clicking the 'discussion' tab at the top of this image page.