再帰アルゴリズムで、ハノイの塔を解くプログラムです。
$ chmod +x hanoi.py
で実行権限を付けて実行して下さい。
'./$ hanoi.py <n>
で、n段のハノイの塔を解きます。
hanoi.py
#!/usr/bin/python3
import sys
def hanoi(n,from_,to,work):
if (n>0):
hanoi(n-1,from_,work,to)
print("%s から %s に %d番目のディスクを移動して下さい。" % (from_,to,n))
hanoi(n-1,work,to,from_)
hanoi(int(sys.argv[1]),' 左','中央',' 右')
実行結果
$ hanoi.py 3
左 から 中央 に 1番目のディスクを移動して下さい。
左 から 右 に 2番目のディスクを移動して下さい。
中央 から 右 に 1番目のディスクを移動して下さい。
左 から 中央 に 3番目のディスクを移動して下さい。
右 から 左 に 1番目のディスクを移動して下さい。
右 から 中央 に 2番目のディスクを移動して下さい。
左 から 中央 に 1番目のディスクを移動して下さい。