Adloun

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è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 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.