Adloun

OCaml (option informatique) · Chapitre 11 · Exercice de TD

Liste des coups de Hanoï

Récursivité et retour sur trace · niveau 2

Énoncé

Écrire hanoi produisant la liste des déplacements, et donner hanoi 2 "A" "B" "C".

Corrigé

let rec hanoi n depart inter arrivee =
  if n = 0 then []
  else
    hanoi (n - 1) depart arrivee inter
    @ [(depart, arrivee)]
    @ hanoi (n - 1) inter depart arrivee

hanoi 2 "A" "B" "C" [("A","B"); ("A","C"); ("B","C")] : on pose le petit disque en B, le grand en C, puis le petit en C. Trois coups, comme .

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre