Ga naar hoofdinhoud

Bouwsteen 2 — het basisgeval

Hier bouw je op verder

Leerdoel: je begrijpt waarom recursie een stopconditie nodig heeft en schrijft het basisgeval voor Hanoi.

Waarom een basisgeval?

Straks roept hanoi zichzelf aan met steeds minder schijven: n, dan n − 1, dan n − 2, enzovoort. Zonder afslag gaat dat door tot onder nul en stopt het nooit. Python grijpt dan in met:

RecursionError: maximum recursion depth exceeded

Het basisgeval is die afslag: het allerkleinste probleem, dat je direct kunt beantwoorden zonder jezelf nog eens aan te roepen.

Wat is het kleinste geval?

Nog kleiner dan één schijf is nul schijven, en een lege stapel verplaatsen kost geen enkele zet. Bij n == 0 geef je dus een lege lijst [] terug.

Dat is handiger dan stoppen bij n == 1: straks telt de recursie vanzelf af tot 0 en valt alles op zijn plek.

Bouw en test

Python
Code-omgeving wordt voorbereid…
Antwoord
def hanoi(n, bron, doel, hulp):
if n == 0:
return []
return [(bron, doel)]

return stopt de functie meteen, dus bij n == 0 komt de regel eronder niet meer aan bod. Die tijdelijke regel vervang je op de volgende pagina door de echte recursie.

Door naar de recursie →.