Adloun

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èmepremier fautifgloutonoptimum
(euro)aucun jusqu'à ——
(dollar)aucun jusqu'à ——
3 pièces2 pièces
5 pièces2 pièces ()
6 pièces2 pièces ()
échec total3 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èmesommes fautivespire écart
2491 pièce
2973 pièces (à )
5858 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 cours du chapitre · Tous les exercices du chapitre