python漢諾塔

有三個立柱A、B、C。A柱上穿有大小不等的圓盤N個,較大的圓盤在下,較小的圓盤在上。要求把A柱上的圓盤全部移到C柱上,保持大盤在下、小盤在上的規律(可藉助B柱)。每次移動只能把一個柱子最上面的圓盤移到另一個柱子的最上面。請輸出移動過程。
解答
這是動態規劃問題中的一種,用遞歸來實現較爲簡單方便。
對於“將moveSum個圓盤從from柱移動到to柱(藉助by柱)”這個問題,我們可以通過以下三步實現:

  1. 將from柱最上面的moveSum-1個圓盤移動到by柱(藉助to柱)
  2. 將from柱上剩下的那1個圓盤直接移動到to柱
  3. 將by柱上的moveSum-1個圓盤移動到to柱(藉助from柱)

python漢諾塔
python漢諾塔
python漢諾塔
python漢諾塔

執行的流程如下:

python漢諾塔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章