ハノイの塔の作業回数を求める方法

ハノイの塔の作業回数は円盤の数を n とすると 2n-1 で求められます。
詳細は以前書きました。

ハノイの塔
ここに3本の棒が立っている。左端の棒には3枚の大きさの違う円盤が突き刺さっている。円盤は下から大中小の順になっている。

これをPythonでやってみます。

def hanoi(n):
  if n == 1:
    return 1
  else:
    return hanoi(n - 1) + 1 + hanoi(n - 1)

n = 10
result = hanoi(n)
print(result)

n=10とした場合、結果は1023となります。

コメント

タイトルとURLをコピーしました