Exercices de programmation pour classes préparatoires
Écrire une fonction partition_egale : int list -> bool qui renvoie true si l'on peut séparer les éléments de la liste en deux sous-ensembles de même somme, et false sinon.
Chaque élément de la liste doit être utilisé exactement une fois, dans l'un ou l'autre des deux sous-ensembles. Les éléments sont supposés être des entiers positifs ou nuls.
Par exemple, partition_egale [1; 5; 11; 5] = true car on peut former {11} et {1; 5; 5}, tous deux de somme 11.
Conventions :
- partition_egale [] = true (deux ensembles vides de somme 0),
- si la somme totale est impaire, il est impossible de partitionner.
| Appel | Résultat attendu |
|---|---|
| partition_egale [1; 5; 11; 5] | True |
| partition_egale [1; 2; 3; 5] | False |
Connectez-vous pour soumettre du code.