Tower of Hanoi
The Tower of Hanoi is a mathematical game or puzzle consisting of three rods and a number of disks of various diameters, which can slide onto any rod. The puzzle begins with the disks stacked on one rod in order of decreasing size, the smallest at the top, thus approximating a conical shape. The objective of the puzzle is to move the entire stack to one of the other rods, obeying the following rules:
- Only one disk may be moved at a time.
- Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack or on an empty rod.
- No disk may be placed on top of a disk that is smaller than it.
Origins
The puzzle was invented by the French mathematician Édouard Lucas, first presented in 1883 as a game discovered by "N. Claus ", and later published as a booklet in 1889 and in a posthumously-published volume of Lucas's Récréations mathématiques. Accompanying the game was an instruction booklet, describing the game's purported origins in Tonkin, and claiming that according to legend, Brahmins at a temple in Benares have been carrying out the movement of the "Sacred Tower of Brahma", consisting of 64 golden disks, according to the same rules as in the game, and that the completion of the tower would lead to the end of the world. Numerous variations on this legend exist, regarding the ancient and mystical nature of the puzzle.At a rate of one move per second, the minimum amount of time it would take to complete the 64 disks would be 264 − 1 seconds or 585 billion years, roughly 42 times the estimated current age of the universe.
There are many variations on this legend. For instance, in some back stories, the temple is a monastery, and the priests are monks. The temple or monastery may be in various locales including Hanoi, and may be associated with any religion. In some versions, other elements are introduced, such as the fact that the tower was created at the beginning of the world, or that the priests or monks may make only one move per day.
Solution
The puzzle can be played with any number of disks, although many toy versions have around 7 to 9 of them. The minimum number of moves required to solve a Tower of Hanoi puzzle with n disks is.Iterative solution
A simple solution for the toy puzzle is to alternate moves between the smallest piece and a non-smallest piece. When moving the smallest piece, always move it to the next position in the same direction. If there is no tower position in the chosen direction, move the piece to the opposite end, but then continue to move in the correct direction. For example, if you started with three pieces, you would move the smallest piece to the opposite end, then continue in the left direction after that. When the turn is to move the non-smallest piece, there is only one legal move. Doing this will complete the puzzle in the fewest moves.Simpler statement of iterative solution
The iterative solution is equivalent to repeated execution of the following sequence of steps until the goal has been achieved:- Move one disk from peg A to peg B or vice versa, whichever move is legal.
- Move one disk from peg A to peg C or vice versa, whichever move is legal.
- Move one disk from peg B to peg C or vice versa, whichever move is legal.
Recursive solution
The key to solving a problem recursively is to recognize that it can be broken down into a collection of smaller sub-problems, to each of which that same general solving procedure that we are seeking applies, and the total solution is then found in some simple way from those sub-problems' solutions. Each of these created sub-problems being "smaller" guarantees that the base case will eventually be reached. For the Towers of Hanoi:- label the pegs A, B, C,
- let n be the total number of disks, and
- number the disks from 1 to n.
- Move m − 1 disks from the source to the spare peg, by the same general solving procedure. Rules are not violated, by assumption. This leaves the disk m as a top disk on the source peg.
- Move the disk m from the source to the target peg, which is guaranteed to be a valid move, by the assumptions — a simple step.
- Move the m − 1 disks that we have just placed on the spare, from the spare to the target peg by the same general solving procedure, so they are placed on top of the disk m without violating the rules.
- The base case is to move 0 disks, that is, do nothing—which does not violate the rules.
This approach can be given a rigorous mathematical proof with mathematical induction and is often used as an example of recursion when teaching programming.
Logical analysis of the recursive solution
As in many mathematical puzzles, finding a solution is made easier by solving a slightly more general problem: how to move a tower of h disks from a starting peg f = A onto a destination peg t = C, B being the remaining third peg and assuming t ≠ f. First, observe that the problem is symmetric for permutations of the names of the pegs. If a solution is known moving from peg A to peg C, then, by renaming the pegs, the same solution can be used for every other choice of starting and destination peg. If there is only one disk, the problem is trivial. If h = 1, then move the disk from peg A to peg C. If h > 1, then somewhere along the sequence of moves, the largest disk must be moved from peg A to another peg, preferably to peg C. The only situation that allows this move is when all smaller h − 1 disks are on peg B. Hence, first all h − 1 smaller disks must go from A to B. Then move the largest disk and finally move the h − 1 smaller disks from peg B to peg C. The presence of the largest disk does not impede any move of the h − 1 smaller disks and can be temporarily ignored. Now the problem is reduced to moving h − 1 disks from one peg to another one, first from A to B and subsequently from B to C, but the same method can be used both times by renaming the pegs. The same strategy can be used to reduce the h − 1 problem to h − 2, h − 3, and so on until only one disk is left. This is called recursion. This algorithm can be schematized as follows.Identify the disks in order of increasing size by the natural numbers from 0 up to but not including h. Hence disk 0 is the smallest one, and disk h − 1 the largest one.
The following is a procedure for moving a tower of h disks from a peg A onto a peg C, with B being the remaining third peg:
- If h > 1, then first use this procedure to move the h − 1 smaller disks from peg A to peg B.
- Now the largest disk, i.e. disk h can be moved from peg A to peg C.
- If h > 1, then again use this procedure to move the h − 1 smaller disks from peg B to peg C.
Non-recursive solution
The list of moves for a tower being carried from one peg onto another one, as produced by the recursive algorithm, has many regularities. When counting the moves starting from 1, the ordinal of the disk to be moved during move m is the number of times m can be divided by 2. Hence every odd move involves the smallest disk. It can also be observed that the smallest disk traverses the pegs f, t, r, f, t, r, etc. for odd height of the tower and traverses the pegs f, r, t, f, r, t, etc. for even height of the tower. This provides the following algorithm, which is easier, carried out by hand, than the recursive algorithm.In alternate moves:
- Move the smallest disk to the peg it has not recently come from.
- Move another disk legally.
Also observe that:
- Disks whose ordinals have even parity move in the same sense as the smallest disk.
- Disks whose ordinals have odd parity move in opposite sense.
- If h is even, the remaining third peg during successive moves is t, r, f, t, r, f, etc.
- If h is odd, the remaining third peg during successive moves is r, t, f, r, t, f, etc.
- Call the moves detailed above a disk's "natural" move.
- Examine the smallest top disk that is not disk 0, and note what its only move would be: if there is no such disk, then we are either at the first or last move.
- If that move is the disk's "natural" move, then the disk has not been moved since the last disk 0 move, and that move should be taken.
- If that move is not the disk's "natural" move, then move disk 0.
Binary solution
Let the disks be labeled n, n-1,…,1, in decreasing size. Let the pegs A, B, and C be labeled 0, 1, and 2 respectively, with 0 always being the starting peg and 2 always being the ending peg. Further, let the bases for the pegs upon which the disks are stacked be labeled n+1, n+2, and n+3, for pegs 0, 1, and 2 respectively.
The disk positions after move m can be mapped from the binary representation of m by the following rules:
- There is 1 binary digit in m for each disk.
- The bitstring for m is read from left to right, and each bit can be used to map the location of the corresponding disk, from disk n to disk 1.
- The most significant bit represents the largest disk, disk n. A value of 0 indicates that the largest disk is on the starting peg 0, while a 1 indicates that it is on the final peg 2.
- After any move:
- Each disk is stacked on another disk, or an empty base, in opposite parity order. That is to say: 5>4>3 is valid; 5>4>2 is invalid.
- Exactly 1 of the top labels is even.
- A bit with the same value as the previous digit means that the corresponding disk is stacked on top of the previous disk. That is to say: a contiguous sequence of 1s or 0s means that the corresponding disks are all on the same peg.
- A bit with a different value than the previous one means that the corresponding disk is on another peg and not on the previous stack. Given 1) above, only 1 choice of the remaining 2 pegs is a legal placement. Note that after the placement of the first set of disks, every “placement round” starts and ends with 1 of the potential pegs having even parity, the other having odd.
- Move 0 = 00000000.
- * The largest disk bit is 0, so it is on the starting peg.
- * All other disks are 0 as well, so they are stacked on top of it. Hence all disks are on the starting peg, in the puzzle's initial configuration.
- Move 25510 = 11111111.
- * The largest disk bit is 1, so it is on the final peg.
- * All other disks are 1 as well, so they are stacked on top of it. Hence all disks are on the final peg and the puzzle is solved.
- Move 21610 = 11011000.
- * The largest disk bit is 1, so disk 8 is on the final peg. Note that it sits on base number 11.
- * Disk 7 is also 1, so it is stacked on top of disk 8.
- * Disk 6 is 0, so it is on another peg. Peg 1 is empty but its base number is 10. The 6 disk cannot sit on the 10 base. Therefore disk 6 is placed on peg 0.
- * Disk 5 is 1, so it is on another peg. Since peg 2 is now topped with 7, it cannot go there. Therefore disk 5 is placed on peg 1.
- * Disk 4 is also 1, so it is stacked on top of disk 5.
- * Disk 3 is 0, so it is on another peg. Since peg 2 is topped with 7, it cannot go there. Disk 3 is placed on peg 0.
- * Disks 2 and 1 are also 0, so they are stacked on top of disk 3.
from peg
% 3 to peg % 3.Another formulation for this is:
from peg
% 3 to peg % 3. These hold for odd n puzzles. For even n puzzles, the output references to pegs 1 and 2 need to be reversed.
Furthermore, the single disk to be moved for any specific move is determined by the number of times the move count can be divided by 2, and then adding 1. In the example above for move 216, with 3 right hand 0s, disk 4 is moved from peg 2 to peg 1.
Gray-code solution
The binary numeral system of Gray codes gives an alternative way of solving the puzzle. In the Gray system, numbers are expressed in a binary combination of 0s and 1s, but rather than being a standard positional numeral system, the Gray code operates on the premise that each value differs from its predecessor by only one bit changed.If one counts in Gray code of a bit size equal to the number of disks in a particular Tower of Hanoi, begins at zero and counts up, then the bit changed each move corresponds to the disk to move, where the least-significant bit is the smallest disk, and the most-significant bit is the largest.
This technique identifies which disk to move, but not where to move it to. For the smallest disk, there are always two possibilities. For the other disks there is always one possibility, except when all disks are on the same peg, but in that case either it is the smallest disk that must be moved or the objective has already been achieved. Luckily, there is a rule that does say where to move the smallest disk to. Let f be the starting peg, t the destination peg, and r the remaining third peg. If the number of disks is odd, the smallest disk cycles along the pegs in the order f → t → r → f → t → r, etc. If the number of disks is even, this must be reversed: f → r → t → f → r → t, etc.
The position of the bit change in the Gray code solution gives the size of the disk moved at each step: 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,..., a sequence also known as the ruler function, or one more than the power of 2 within the move number. In the Wolfram Language,
IntegerExponent, 2] + 1 gives moves for the 8-disk puzzle.Graphical representation
The game can be represented by an undirected graph, the nodes representing distributions of disks and the edges representing moves. For one disk, the graph is a triangle:[file:tower_of_hanoi_graph.svg|lang=en-simple|120px|center]
The graph for two disks is three triangles connected to form the corners of a larger triangle.
A second letter is added to represent the larger disk. Clearly, it cannot initially be moved.
The topmost small triangle now represents the one-move possibilities with two disks:
[file:tower_of_hanoi_graph.svg|lang=tw|200px|center]
The nodes at the vertices of the outermost triangle represent distributions with all disks on the same peg.
For h + 1 disks, take the graph of h disks and replace each small triangle with the graph for two disks.
For three disks the graph is:
[file:tower_of_hanoi_graph.svg|lang=default|400px|center]
- call the pegs a, b, and c
- list disk positions from left to right in order of increasing size
In general, for a puzzle with n disks, there are 3n nodes in the graph; every node has three edges to other nodes, except the three corner nodes, which have two: it is always possible to move the smallest disk to one of the two other pegs, and it is possible to move one disk between those two pegs except in the situation where all disks are stacked on one peg. The corner nodes represent the three cases where all the disks are stacked on one peg. The diagram for n + 1 disks is obtained by taking three copies of the n-disk diagram—each one representing all the states and moves of the smaller disks for one particular position of the new largest disk—and joining them at the corners with three new edges, representing the only three opportunities to move the largest disk. The resulting figure thus has 3n+1 nodes and still has three corners remaining with only two edges.
As more disks are added, the graph representation of the game will resemble a fractal figure, the Sierpiński triangle. It is clear that the great majority of positions in the puzzle will never be reached when using the shortest possible solution; indeed, if the priests of the legend are using the longest possible solution, it will take them 364 − 1 moves, or more than 1023 years.
The longest non-repetitive way for three disks can be visualized by erasing the unused edges:
[file:tower_of_hanoi_graph.svg|lang=pa|400px|center]
Incidentally, this longest non-repetitive path can be obtained by forbidding all moves from a to c.
The Hamiltonian cycle for three disks is:
[file:tower_of_hanoi_graph.svg|lang=cy|400px|center]
The graphs clearly show that:
- From every arbitrary distribution of disks, there is exactly one shortest way to move all disks onto one of the three pegs.
- Between every pair of arbitrary distributions of disks there are one or two different shortest paths.
- From every arbitrary distribution of disks, there are one or two different longest non-self-crossing paths to move all disks to one of the three pegs.
- Between every pair of arbitrary distributions of disks there are one or two different longest non-self-crossing paths.
- Let Nh be the number of non-self-crossing paths for moving a tower of h disks from one peg to another one. Then:
- * N1 = 2
- * Nh+1 = 2 + 3
Variations
Linear Hanoi
If all moves must be between adjacent pegs, then moving a stack of n disks from peg A to peg C takes 3n − 1 moves. The solution uses all 3n valid positions, always taking the unique move that does not undo the previous move. The position with all disks at peg B is reached halfway, i.e. after / 2 moves.Cyclic Hanoi
In Cyclic Hanoi, we are given three pegs, which are arranged as a circle with the clockwise and the counterclockwise directions being defined as A – B – C – A and A – C – B – A, respectively. The moving direction of the disk must be clockwise. It suffices to represent the sequence of disks to be moved. The solution can be found using two mutually recursive procedures:To move n disks counterclockwise to the neighbouring target peg:
- move n − 1 disks counterclockwise to the target peg
- move disk #n one step clockwise
- move n − 1 disks clockwise to the start peg
- move disk #n one step clockwise
- move n − 1 disks counterclockwise to the target peg
- move n − 1 disks counterclockwise to a spare peg
- move disk #n one step clockwise
- move n − 1 disks counterclockwise to the target peg
The solution for the Cyclic Hanoi has some interesting properties:
- The move-patterns of transferring a tower of disks from a peg to another peg are symmetric with respect to the center points.
- The smallest disk is the first and last disk to move.
- Groups of the smallest disk moves alternate with single moves of other disks.
- The number of disks moves specified by C and A are minimal.
With four pegs and beyond
However, in case of four or more pegs, the Frame–Stewart algorithm is known without proof of optimality since 1941.
For the formal derivation of the exact number of minimum moves required to solve the problem by applying the Frame–Stewart algorithm, see the following paper.
For other variants of the four-peg Tower of Hanoi problem, see Paul Stockmeyer's survey paper.
The so-called Towers of Bucharest and Towers of Klagenfurt game configurations yield ternary and pentary Gray codes.
Frame–Stewart algorithm
The Frame–Stewart algorithm is described below:- Let be the number of disks.
- Let be the number of pegs.
- Define to be the minimum number of moves required to transfer n disks using r pegs.
- For some,, transfer the top disks to a single peg other than the start or destination pegs, taking moves.
- Without disturbing the peg that now contains the top disks, transfer the remaining disks to the destination peg, using only the remaining pegs, taking moves.
- Finally, transfer the top disks to the destination peg, taking moves.
This algorithm is presumed to be optimal for any number of pegs; its number of moves is 2Θ.
General shortest paths and the number 466/885
A curious generalization of the original goal of the puzzle is to start from a given configuration of the disks where all disks are not necessarily on the same peg and to arrive in a minimal number of moves at another given configuration. In general, it can be quite difficult to compute a shortest sequence of moves to solve this problem. A solution was proposed by Andreas Hinz and is based on the observation that in a shortest sequence of moves, the largest disk that needs to be moved will move either exactly once or exactly twice.The mathematics related to this generalized problem becomes even more interesting when one considers the average number of moves in a shortest sequence of moves between two initial and final disk configurations that are chosen at random. Hinz and Chan Tat-Hung independently discovered that the average number of moves in an n-disk Tower is given by the following exact formula:
For large enough n, only the first and second terms do not converge to zero, so we get an asymptotic expression:, as. Thus intuitively, we could interpret the fraction of as representing the ratio of the labor one has to perform when going from a randomly chosen configuration to another randomly chosen configuration, relative to the difficulty of having to cross the "most difficult" path of length which involves moving all the disks from one peg to another. An alternative explanation for the appearance of the constant 466/885, as well as a new and somewhat improved algorithm for computing the shortest path, was given by Romik.
Magnetic Hanoi
In Magnetic Tower of Hanoi, each disk has two distinct sides North and South.Disks must not be placed with the similar poles together—magnets in each disk prevent this illegal move.
Also, each disk must be flipped as it is moved.
Bicolor Towers of Hanoi
This variation of the famous Tower of Hanoi puzzle was offered to grade 3–6 students at 2ème Championnat de France des Jeux Mathématiques et Logiques held in July 1988.The rules of the puzzle are essentially the same: disks are transferred between pegs one at a time. At no time may a bigger disk be placed on top of a smaller one. The difference is that now for every size there are two disks: one black and one white. Also, there are now two towers of disks of alternating colors. The goal of the puzzle is to make the towers monochrome. The biggest disks at the bottom of the towers are assumed to swap positions.
Tower of Hanoy
A variation of the puzzle has been adapted as a solitaire game with nine playing cards under the name Tower of Hanoy. It is not known whether the altered spelling of the original name is deliberate or accidental.Applications
The Tower of Hanoi is frequently used in psychological research on problem-solving. There also exists a variant of this task called Tower of London for neuropsychological diagnosis and treatment of disorders of executive function.Zhang and Norman used several isomorphic representations of the game to study the impact of representational effect in task design. They demonstrated an impact on user performance by changing the way that the rules of the game are represented, using variations in the physical design of the game components. This knowledge has impacted on the development of the TURF framework for the representation of human–computer interaction.
The Tower of Hanoi is also used as a backup rotation scheme when performing computer data backups where multiple tapes/media are involved.
The Tower of Hanoi is also used as a test by neuropsychologists trying to evaluate frontal lobe deficits.
In 2010, researchers published the results of an experiment that found that the ant species Linepithema humile were successfully able to solve the 3-disk version of the Tower of Hanoi problem through non-linear dynamics and pheromone signals.
In 2014, scientists synthesized multilayered palladium nanosheets with a Tower of Hanoi-like structure.
In 2025, Apple Inc. researchers used the Tower of Hanoi and other puzzles to test the reasoning ability of LLM Generative AI programs. The researchers found that the leading AI models, including ChatGPT, Claude, and Deepseek, struggled with solving a Tower of Hanoi at the level of 7 rings, getting less than 80% accuracy, and failing completely to solve a Tower of Hanoi with 8 rings. Even in instances in which the researchers gave the AI models the solution algorithm, they still failed. Based on this performance, the researchers concluded that AI systems collapse when complexity rises, indicating that they're unable to handle tasks that push them beyond the distribution of their training data, which also casts doubt on the ability of those models to advance to the level of AGI.
In popular culture
In the science fiction story "Now Inhale", by Eric Frank Russell, a human is held prisoner on a planet where the local custom is to make the prisoner play a game until it is won or lost before his execution. The protagonist knows that a rescue ship might take a year or more to arrive, so he chooses to play Towers of Hanoi with 64 disks. This story makes reference to the legend about the Buddhist monks playing the game until the end of the world.In the 1966 Doctor Who story The Celestial Toymaker, the eponymous villain forces the Doctor to play a ten-piece, 1,023-move Tower of Hanoi game entitled The Trilogic Game with the pieces forming a pyramid shape when stacked.
In 2007, the concept of the Towers Of Hanoi problem was used in Professor Layton and the Diabolical Box in puzzles 6, 83, and 84, but the disks had been changed to pancakes. The puzzle was based around a dilemma where the chef of a restaurant had to move a pile of pancakes from one plate to the other with the basic principles of the original puzzle
In the 2011 film Rise of the Planet of the Apes, this puzzle, called in the film the "Lucas Tower", is used as a test to study the intelligence of apes.
The puzzle is featured regularly in adventure and puzzle games. Since it is easy to implement, and easily recognised, it is well suited to use as a puzzle in a larger graphical game. Some implementations use straight disks, but others disguise the puzzle in some other form. There is an arcade version by Sega.
A 15-disk version of the puzzle appears in the game Sunless Sea as a lock to a tomb. The player has the option to click through each move of the puzzle in order to solve it, but the game notes that it will take 32,767 moves to complete. If an especially dedicated player does click through to the end of the puzzle, it is revealed that completing the puzzle does not unlock the door.
This was first used as a challenge in Survivor Thailand in 2002 but rather than rings, the pieces were made to resemble a temple. Sook Jai threw the challenge to get rid of Jed even though Shii-Ann knew full well how to complete the puzzle.
The problem is featured as part of a reward challenge in a 2011 episode of the American version of the Survivor TV series. Both players struggled to understand how to solve the puzzle and are aided by their fellow tribe members.
In 2025, the puzzle also appears in the beginning of the Mega Duel in the Love Island Games season 2 Finale.