Numérique et sciences informatiques (spécialité) · Première
Algorithmes gloutons : exercices corrigés de Première NSI
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Un algorithme glouton répète un choix localement optimal à chaque étape, dans l'espoir d'obtenir un résultat optimal global 3.
- Pour le rendu de monnaie, on choisit à chaque fois la plus grande pièce qui ne dépasse pas la somme restante, jusqu'à obtenir une somme nulle 23.
- Le résultat dépend du système de pièces : optimal avec 1, 2, 5, 10, 20, 50, 100, 200 ; non optimal avec 1, 3, 4 3.
- Quand le résultat n'est pas toujours optimal, on parle d'heuristique gloutonne 3.
Comment utiliser ces exercices
Ces exercices s'appuient sur une idée simple : à chaque étape, on prend le choix qui paraît le meilleur tout de suite. Un algorithme glouton suit ce principe : il réalise, étape par étape, un choix optimal local pour obtenir un résultat optimal global 3. C'est un algorithme itératif : on répète la même règle de choix à chaque tour de boucle 3. Essaie chaque exercice sur papier avant d'ouvrir les indices, puis compare ta démarche avec la correction, étape par étape.
Deux questions à se poser à chaque exercice
Devant un problème d'optimisation, distingue toujours deux questions. La première : que fait l'algorithme glouton ? Elle demande seulement d'appliquer la règle, sans chercher mieux. La seconde : est-ce le meilleur résultat possible ? Elle demande de comparer avec d'autres solutions. Dans la vie courante, chacun applique souvent sans s'en rendre compte une stratégie gloutonne 2 : on remplit d'abord le plus gros sac, on choisit le trajet qui semble le plus court au prochain carrefour. Ce réflexe est pratique, mais il ne garantit rien.
Au-delà de la monnaie
Le rendu de monnaie n'est qu'un exemple. L'idée gloutonne sert aussi à décomposer un entier strictement positif en somme d'éléments d'un ensemble contenant le nombre 1 : on retire à chaque fois le plus grand élément possible 3. Le système de numération de Zeckendorf en est un cas particulier, où l'ensemble utilisé est celui des nombres de Fibonacci 3. Les derniers exercices de la page explorent ce prolongement, puis une autre application : la décomposition d'un nombre rationnel en fractions unitaires 4.
Les exercices
Exercice 1 Rendre 37 centimes
On utilise le système de pièces en centimes : 1, 2, 5, 10, 20, 50, 100, 200. Un client doit recevoir 37 centimes. Applique l'algorithme glouton et donne le nombre de pièces rendues.
Indice 1
À chaque étape, prends la plus grande pièce qui ne dépasse pas la somme restante.
Indice 2
Après la première pièce, il reste 17 centimes.
Voir la correction pas à pas
Plus grande pièce inférieure ou égale à 37 : 20. Il reste 37 − 20 = 17.
Plus grande pièce inférieure ou égale à 17 : 10. Il reste 7.
Plus grande pièce inférieure ou égale à 7 : 5. Il reste 2.
Plus grande pièce inférieure ou égale à 2 : 2. Il reste 0, on s'arrête.
Pièces rendues : 20 + 10 + 5 + 2, soit 4 pièces.
Le rendu est 20 + 10 + 5 + 2, soit 4 pièces. Ce résultat est optimal, car dans ce système de pièces l'algorithme glouton donne toujours une solution optimale 3.
Exercice 2 Rendre 6 avec le système (1, 3, 4)
Le système de pièces est (1, 3, 4). On doit rendre 6.
- Donne le rendu produit par l'algorithme glouton.
- Donne un rendu qui utilise moins de pièces.
- Que peux-tu en conclure ?
Indice 1
Pour la question 2, cherche deux pièces identiques dont la somme vaut 6.
Voir la correction pas à pas
Glouton : la plus grande pièce qui ne dépasse pas 6 est 4, il reste 2.
Pour le reste 2, la plus grande pièce possible est 1 (car 3 > 2), il reste 1, puis encore 1. Rendu : 4 + 1 + 1, soit 3 pièces.
Autre rendu : 3 + 3, soit 2 pièces.
Comme 2 < 3, l'algorithme glouton n'est pas optimal pour ce système.
L'algorithme glouton donne 4 + 1 + 1 (3 pièces) alors que 3 + 3 (2 pièces) est meilleur 3. Un seul contre-exemple suffit pour affirmer que le glouton n'est pas optimal avec le système (1, 3, 4). Nombre de pièces du rendu glouton : 3.
Exercice 3 Un système non canonique
Le système de pièces est (1, 3, 6, 12, 24, 30). On doit rendre 49.
- Déroule l'algorithme glouton.
- Trouve un rendu avec moins de pièces.
- Que dire de ce système ?
Indice 1
Le glouton commence par 30.
Indice 2
Pour la question 2, pense à 24 + 24 + 1.
Voir la correction pas à pas
Plus grande pièce ≤ 49 : 30, il reste 19.
Plus grande pièce ≤ 19 : 12, il reste 7.
Plus grande pièce ≤ 7 : 6, il reste 1.
Plus grande pièce ≤ 1 : 1, il reste 0. Rendu glouton : 30 + 12 + 6 + 1, soit 4 pièces.
Autre rendu : 24 + 24 + 1 = 49, soit 3 pièces.
3 < 4 : le glouton n'est pas optimal.
Exercice 4 Trouver la plus petite somme qui piège le glouton
Avec le système (1, 3, 4), on cherche la plus petite somme pour laquelle l'algorithme glouton n'est pas optimal. Teste les sommes 1, 2, 3, 4, 5, 6 dans l'ordre.
Indice 1
Pour chaque somme, compare le rendu glouton avec le meilleur rendu que tu trouves à la main.
Indice 2
Les sommes 1 à 4 se rendent avec une seule pièce ou avec des pièces de 1.
Voir la correction pas à pas
1 : une pièce de 1. Glouton optimal.
2 : 1 + 1, deux pièces, et il n'y a pas mieux. Glouton optimal.
3 : une pièce de 3. Glouton optimal.
4 : une pièce de 4. Glouton optimal.
5 : glouton 4 + 1, deux pièces. Aucun rendu à une seule pièce n'existe : optimal.
6 : glouton 4 + 1 + 1, trois pièces, alors que 3 + 3 en utilise deux. Le glouton échoue.
La plus petite somme qui met le glouton en défaut est 6, le contre-exemple donné par le système (1, 3, 4) 3. Tester les petites sommes dans l'ordre croissant est une bonne méthode pour trouver un contre-exemple.
Exercice 5 Écrire la fonction de rendu
On représente un système de pièces par une liste triée par ordre décroissant, par exemple [200, 100, 50, 20, 10, 5, 2, 1].
Écris une fonction rendu(somme, pieces) qui renvoie la liste des pièces choisies par l'algorithme glouton. Teste-la mentalement avec rendu(37, [200, 100, 50, 20, 10, 5, 2, 1]).
Indice 1
Utilise une boucle for sur les pièces, puis une boucle while interne.
Indice 2
Tant que la pièce courante ne dépasse pas la somme restante, on l'ajoute et on retranche sa valeur.
Voir la correction pas à pas
Créer une liste vide
resultatet garder la somme restante dansreste.Parcourir les pièces de la plus grande à la plus petite.
Pour chaque pièce, tant que
piece <= reste, ajouterpieceàresultatet fairereste = reste - piece.À la fin, renvoyer
resultat.Code :
def rendu(somme, pieces):puisresultat = [],reste = somme,for p in pieces:puiswhile p <= reste:puisresultat.append(p)etreste = reste - p, enfinreturn resultat.Test : pour 37, la fonction renvoie
[20, 10, 5, 2], ce qui est le résultat attendu 3.
La fonction répète le choix de la plus grande pièce possible jusqu'à obtenir une somme à rendre nulle 2. Elle ne renvoie un rendu complet que si la pièce de valeur 1 est dans le système. Pour 37, la liste renvoyée contient 4 pièces. Le tri décroissant de la liste est une condition indispensable : sans lui, la fonction ne choisirait plus la plus grande pièce en premier.
Exercice 6 Compter les pièces d'un rendu glouton
Avec le système européen en centimes (1, 2, 5, 10, 20, 50, 100, 200), combien de pièces l'algorithme glouton utilise-t-il pour rendre 388 centimes ?
Indice 1
Commence par la pièce de 200, puis regarde ce qui reste.
Voir la correction pas à pas
388 : une pièce de 200, il reste 188.
188 : une pièce de 100, il reste 88.
88 : une pièce de 50, il reste 38.
38 : une pièce de 20, il reste 18.
18 : une pièce de 10, il reste 8.
8 : une pièce de 5, il reste 3.
3 : une pièce de 2, il reste 1.
1 : une pièce de 1, il reste 0.
Total : 8 pièces.
Le rendu est 200 + 100 + 50 + 20 + 10 + 5 + 2 + 1, soit 8 pièces. Comme le glouton est toujours optimal avec ce système 3, on ne peut pas faire mieux.
Exercice 7 Décomposer 50 avec les nombres de Fibonacci
Les nombres de Fibonacci, du plus petit au plus grand, commencent par 1, 2, 3, 5, 8, 13, 21, 34, 55. Le système de numération de Zeckendorf utilise l'algorithme glouton avec cet ensemble 3. Décompose 50 en somme de nombres de cet ensemble en choisissant à chaque étape le plus grand nombre possible qui ne dépasse pas le reste. Combien de termes obtiens-tu ?
Indice 1
Le plus grand nombre de la liste qui ne dépasse pas 50 est 34.
Indice 2
Après 34, il reste 16.
Voir la correction pas à pas
Plus grand nombre ≤ 50 : 34 (car 55 > 50). Il reste 50 − 34 = 16.
Plus grand nombre ≤ 16 : 13. Il reste 3.
Plus grand nombre ≤ 3 : 3. Il reste 0, on s'arrête.
Décomposition : 50 = 34 + 13 + 3, soit 3 termes.
Exercice 8 Fractions égyptiennes : décomposer 5/6
Une fraction unitaire est de la forme . L'algorithme glouton de décomposition en fractions égyptiennes choisit à chaque étape la plus grande fraction unitaire possible inférieure au nombre considéré 4.
Applique-le à et vérifie le résultat.
Indice 1
Cherche le plus petit entier tel que .
Indice 2
Il reste ensuite .
Voir la correction pas à pas
Le plus petit tel que est (car ).
On retranche : .
Le reste est déjà une fraction unitaire, on s'arrête.
Résultat : .
On retrouve la décomposition en fractions unitaires distinctes 4. Le reste après la première étape vaut , soit environ 0,3333.
Exercice 9 Décomposer 7/15 en fractions unitaires
Applique la même méthode gloutonne (plus grande fraction unitaire possible, inférieure au nombre considéré) 4 à . Donne la décomposition et le dernier dénominateur.
Indice 1
: essaie .
Voir la correction pas à pas
. est trop grand, convient : première fraction .
Reste : .
. est trop grand, convient : deuxième fraction .
Reste : , fraction unitaire : on s'arrête.
Résultat : .
La décomposition gloutonne est . Le dernier dénominateur vaut 120 : les dénominateurs peuvent grossir très vite, même pour de petites fractions.
Les questions qu'on se pose
Comment prouver qu'un algorithme glouton n'est pas optimal ?
Il suffit d'exhiber un contre-exemple : une situation où une autre solution fait mieux. Avec le système (1, 3, 4) et la somme 6, le glouton donne 4 + 1 + 1 alors que 3 + 3 est meilleur 3. À l'inverse, vérifier quelques cas ne prouve jamais l'optimalité.
Pourquoi utiliser un algorithme glouton s'il n'est pas toujours optimal ?
Que se passe-t-il si la liste de pièces n'est pas triée dans l'ordre décroissant ?
La fonction ne choisit plus la plus grande pièce possible en premier : elle ne suit plus la règle gloutonne et peut rendre un résultat différent, voire moins bon. Trie toujours la liste par ordre décroissant avant de lancer la boucle.
Sources
Programme visé : Programmes et ressources en numérique et sciences informatiques - Voie générale (Première) · Ministère de l'Éducation nationale (Éduscol)
- Programmes et ressources en numérique et sciences informatiques - Voie générale (Première), Ministère de l'Éducation nationale (Éduscol). Consulté le 6 novembre 2026.
- Algorithmes gloutons — Document Éduscol, Éduscol. Consulté le 6 novembre 2026.
- Algorithme glouton, Wikipédia. Consulté le 6 novembre 2026.
- Algorithme glouton pour la décomposition en fractions égyptiennes, Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.