アルゴリズム...困難

782 ワード

2週間航行する.


本格的なアルゴリズムマラソンが始まりました...
自分で解いてみましたが、初めて触れたコードなので・・・私はあなたが手で問題を解くことができることを知っています...どうやってコンピューターにこれをやらせるのか分からない.特にハノイタワー問題では...1次n-1次のすべての転送関数を実行します...第2段階は最後の最大の目標に移行する場所であり、第3段階は現在n-1の目標に移行する場所である...私は数学の上のa=2 an-1+1を理解することができますなぜ再帰関数で答えと一緒に書くのかまだ分かりませんが...
an +1 = 2(an-1 +1) so an = 2^n - 1
Pythonでは、
def hanoi tower(n,start,end):startからendに移動する関数
if n == 1:
print(start, end)
return
hanoi_tower(n - 1, start, 6 - start - end)  # 1단계  start에서 end로 가기 위해선 end 말고 다른곳에 다 옮겨놔야함
print(start, end)  # 2단계   맨 마지막꺼 하나를 이제 옮겨지는곳으로 옮기는 과정
hanoi_tower(n - 1, 6 - start - end, end)  # 3단계     이거 전체다를 목표한곳으로 이제 다 옮겨주는 함수
A 4紙では、n=3のとき、一つ一つ展開して、コンピュータの計算方法を知っていましたが、それを利用して直接再帰関数を書く方法が分かりません...