informatique (MP2I/MPI) · Chapitre 16 · Application directe du cours
Le glouton n'échoue pas au hasard
Algorithmes gloutons · niveau 2
É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 six 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.
Exercices semblables
- Le codage de Huffman quand toutes les fréquences sont égales corrigé
- Ce qui casse quand les activités sont pondérées corrigé
- Huffman sur un alphabet d'un seul caractère corrigé
- Problème — Huffman de bout en bout : coder, décoder, mesurer corrigé
- Problème — Tâches unitaires : quels ensembles sont réalisables, et pourquoi le glouton les trouve corrigé