OCaml (option informatique) · Chapitre 11 · Exercice de TD
Permutations
Récursivité et retour sur trace · niveau 2
Énoncé
Écrire permutations (à l'aide de insere_partout et aplatis) et compter celles de [1; 2; 3].
Corrigé
let rec insere_partout x l =
match l with
| [] -> [[x]]
| t :: reste ->
(x :: l) :: List.map (fun p -> t :: p) (insere_partout x reste)
let rec permutations l =
match l with
| [] -> [[]]
| x :: reste ->
aplatis (List.map (insere_partout x) (permutations reste))
permutations [1;2;3] en compte . Pour chaque permutation du reste, on glisse x aux k+1 positions possibles, d'où la multiplication par la longueur croissante.
Exercices semblables
- Liste des coups de Hanoï corrigé
- Compter les sous-ensembles de somme donnée corrigé
- Combinaisons corrigé
- Les reines corrigé
- Reconstruire le sous-ensemble corrigé