ホームページ  >  記事  >  バックエンド開発  >  Python でハノイの塔メソッドを実装する

Python でハノイの塔メソッドを実装する

高洛峰
高洛峰オリジナル
2017-03-27 16:37:441726ブラウズ

ハノイの塔は、インドの古代伝説に基づいた知育玩具です。ハノイ塔の動きは再帰的関数としても見ることができます。

列に a、b、c の番号を付けます。すべてのディスクを a から c に移動することは、次のように記述できます。
a にディスクが 1 つしかない場合は、直接 c に移動できます。 a には 1 つのディスク (シャーシ) + (N-1) 個のディスクがあると考えてください。まず、(N-1) 個のディスクを b に移動し、次に a の最後のディスクを c に移動してから、(N-1) を移動する必要があります。 )b~cのディスク。
入力 n、a、b、c を指定して、移動のステップを出力する関数を作成してください:
move(n, a, b, c)
たとえば、入力 move(2, 'A', ' B'、'C')、印刷:
A –> B
B –> C

背景情報:

ハノイの塔 (別名: ハノイの塔)ハノイ)インド発祥の問題 古代の伝説から生まれた知育玩具。ブラフマーは世界を創造したとき、3 本のダイヤモンドの柱を作り、1 つの柱の上に 64 枚の金の円盤を下から上に大きさの順に積み上げました。ブラフマーはバラモンに、別の柱の上にある円盤を下から大きい順に並べ替えるよう命じました。また、小さな円盤では円盤を拡大することはできず、3本の柱の間で一度に移動できる円盤は1枚だけであると規定されています。



Python でハノイの塔メソッドを実装するコードは次のように実装されます:

def move(n, a, b, c):
    if n==1:
        print a,'-->',c
        return
    else:
        move(n-1,a,c,b)  #首先需要把 (N-1) 个圆盘移动到 b 
        move(1,a,b,c)    #将a的最后一个圆盘移动到c
        move(n-1,b,a,c)  #再将b的(N-1)个圆盘移动到c
move(4, 'A', 'B', 'C')

以上がPython でハノイの塔メソッドを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。