私は Python がまったく初めてで、現在、ハノイの塔と再帰に関するチュートリアルを進めています。彼らがこの例を与えるまで、私は再帰を理解していると思っていました:
def moveTower(height,fromPole, toPole, withPole):
if height >= 1:
moveTower(height-1,fromPole,withPole,toPole)
moveDisk(fromPole,toPole)
moveTower(height-1,withPole,toPole,fromPole)
#print(withPole)
def moveDisk(fp,tp):
print("moving disk from",fp,"to",tp)
moveTower(3,"A","B","C")
これは、3 つのディスクを使用してハノイの塔問題を解くための正しい動きを出力します。 ディスクを A から B に移動 ディスクを A から C に移動 ディスクを B から C に移動 ディスクを A から B に移動 ディスクを C から A に移動AからBにディスクを移動する
私の質問は、どうやってそうするのですか?! 誰かがコード行を調べて、正しい動きをどのように出力するかを理解できますか? 私は主に、 と の値が から にどのように変化するかについて混乱fp
してtp
います。これが少し広い質問である場合は申し訳ありません!どんな助けでも大歓迎です!A
B
C