Tower of Hanoi
Tower of Hanoi is a recurrent mathematical problem. In recurrence, the solution to each problem depends on the solutions to smaller instances of the same problem.
I’d solved this problem a few years ago. But now, since we talk about functional programming, I decided to solve the problem using Elixir.
Read more about the problem statement here: Tower of Hanoi
If you want to try it interactively, go here.
Here is my solution:
1
2
3
4
5
6
7
8
9
10
11
defmodule TowerOfHanoi do
def move(1, source, destination, intermediate) do
IO.puts ["Move ", source, " to ", destination]
end
def move(no_of_disks, source, destination, intermediate) do
move(no_of_disks - 1, source, intermediate, destination)
IO.puts ["Move ", source, " to ", destination]
move(no_of_disks - 1, intermediate, destination, source)
end
end
I’m updating my GitHub repository (yedhukrishnan/mathematics) with more math problems. Feel free to check them out to suggest improvements or to give comments.
Originally published on my blog: Tower of Hanoi
This post is licensed under CC BY 4.0 by the author.