ハノイの塔の作業回数は円盤の数を 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)
if n == 1:
return 1
else:
return hanoi(n - 1) + 1 + hanoi(n - 1)
n = 10
result = hanoi(n)
print(result)
n=10とした場合、結果は1023となります。


コメント