Sous-ensemble de somme donnée
Exercice · OCaml (option informatique), chapitre 11 — Récursivité et retour sur trace
Énoncé
Écrire existe_somme l cible (entiers positifs) et l'appliquer à existe_somme [2; 3; 7] 5.
Corrigé
let rec existe_somme l cible =
if cible = 0 then true
else
match l with
| [] -> false
| x :: reste ->
existe_somme reste (cible - x) || existe_somme reste cible
existe_somme [2;3;7] 5 : prendre 2 puis chercher 3 dans [3;7] → prendre 3, cible 0 → true. Le sous-ensemble convient.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.