Le glouton n'échoue pas au hasard
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 16 — Algorithmes gloutons
Énoncé
Le cours montre que le glouton du rendu de monnaie se trompe sur pour . Pour chacun des systèmes ci-dessous, trouver la plus petite somme mal rendue : , , , , .
Corrigé
On compare, pour chaque , le nombre de pièces du glouton à l'optimum calculé par une table (chapitre chap:dynamique). Mesuré :
| Système | premier fautif | glouton | optimum |
|---|---|---|---|
| (euro) | aucun jusqu'à | --- | --- |
| (dollar) | aucun jusqu'à | --- | --- |
| 3 pièces | 2 pièces | ||
| 5 pièces | 2 pièces () | ||
| 6 pièces | 2 pièces () | ||
| échec total | 3 pièces () |
Le cas est le plus instructif : pour , le glouton prend , il reste , et aucune pièce ne tient. Il ne rend pas une réponse trop grande : il ne rend rien du tout, alors qu'une solution existe. Sans pièce de , un glouton peut être bloqué. Un programme écrit sans y penser bouclera, ou lèvera une exception, sur une entrée parfaitement légitime.
Combien de sommes sont mal rendues, pour :
| Système | sommes fautives | pire écart |
|---|---|---|
| 249 | 1 pièce | |
| 297 | 3 pièces (à ) | |
| 585 | 8 pièces (à ) | |
| 0 | --- | |
| 0 | --- |
Sur , le glouton se trompe plus d'une fois sur deux, et peut rendre neuf pièces là où deux suffisent.
Ce que cela enseigne. Les deux systèmes monétaires réels sont canoniques : le glouton y est exact, et ce n'est pas un accident — leurs valeurs ont été choisies pour cela. Mais l'optimalité du glouton est une propriété du système, pas de la méthode. Un glouton essayé sur les pièces qu'on a dans la poche paraîtra toujours correct, et c'est précisément le piège que le chapitre annonce. Le problème 16.5 donne le critère qui tranche.
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.