Turnurile din Hanoi
În acest exercițiu vei implementa puzzle-ul Turnurile din Hanoi folosind un algoritm recursiv. Scopul jocului este să muți toate discurile de pe unul dintre cele trei stâlpi pe altul, respectând următoarele reguli:
- Poți muta câte un singur disc la un moment dat.
- Poți lua doar discul de deasupra unui stâlp și îl poți plasa în vârful altui stâlp.
- Nu poți pune un disc mai mare peste unul mai mic.

Algoritmul prezentat implementează acest joc cu patru discuri și trei stâlpi numiți 'A', 'B' și 'C'. Codul conține două greșeli. Dacă îl execuți, consola va genera o eroare deoarece se depășește adâncimea maximă de recursivitate. Poți identifica problemele și le poți corecta?
Acest exercițiu face parte din cursul
Structuri de date și algoritmi în Python
Instrucțiuni pentru exercițiu
- Corectează cazul de bază.
- Corectează apelurile funcției
hanoi().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
def hanoi(num_disks, from_rod, to_rod, aux_rod):
# Correct the base case
if num_disks >= 0:
# Correct the calls to the hanoi function
hanoi(num_disks, from_rod, aux_rod, to_rod)
print("Moving disk", num_disks, "from rod", from_rod,"to rod",to_rod)
hanoi(num_disks, aux_rod, to_rod, from_rod)
num_disks = 4
source_rod = 'A'
auxiliar_rod = 'B'
target_rod = 'C'
hanoi(num_disks, source_rod, target_rod, auxiliar_rod)