ハノイの塔の作業回数は円盤の数を n とすると 2n-1 で求められます。
詳細は以前書きました。
これを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となります。
コメント