Résoudre un problème avec un algorithme glouton
- Fiche de cours
- Quiz et exercices
- Vidéos et podcasts
- Définir la stratégie gloutonne.
- Appliquer la méthode gloutonne au problème de rendu de monnaie.
Un algorithme glouton choisit à chaque étape la solution qui lui semble optimale à l’instant du choix. On obtiendra au final une solution qu’on espère optimale.
- Définir une fonction en Python.
- Utiliser les structures conditionnelles.
Un algorithme permet d’obtenir rapidement une solution convenable, mais pas forcément la meilleure.
- Le problème du voyageur de commerce
est un problème où l’on recherche
un itinéraire qui minimise la distance totale
parcourue. Une recherche exhaustive fonctionnerait mais
cela prendrait trop de temps.
On préfère une méthode gloutonne, en cherchant à chaque étape à optimiser cette distance sans jamais remettre en cause le choix précédent. - • Le problème du rendu de monnaie est un problème où l’on cherche à rendre la monnaie en utilisant le minimum de pièces possible.
Le problème du rendu de monnaie est un problème d’algorithmique. Dans un système donné de monnaie, le but est de rendre la monnaie en utilisant le minimum de pièces et de billets possible.
L’approche gloutonne de ce problème consiste à choisir à chaque étape la pièce ou le billet de plus grande valeur qui ne dépasse pas la somme restant à rendre.
On se place ici dans le système de pièces
et de billets européens en centimes.
La liste de monnaie possible est la suivante.
{1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000}
Pour rendre 8 €, on convertit d’abord en centimes.
On doit donc rendre 800 centimes : 800 = 500 + 200 + 100.
On donnera donc un billet de 5 €, une pièce de 2 € et une pièce de 1 €.
Voici le programme Python associé à ce problème du rendu de monnaie. On donne l’explication ligne à ligne.
liste=[1,2,5,10,20,50, 100,200,500,1000,2000, 5000,10000,20000,50000] | On définit la liste possible des valeurs pour la monnaie. |
def renduMonnaie(s): | On définit la fonction rendu de monnaie. |
n=len(liste) | n est la longueur de la liste. |
rendu=[0]*n | On crée une liste remplie de n zéros. |
while s>0: | Tant que s>0 : |
if s>=liste[n-1]: | Si s est supérieur ou égal à liste[n-1], |
s=s-liste[n-1] | on enlève à s la valeur liste[n-1], |
rendu[n-1]=rendu[n-1]+1 | on ajoute alors 1 au (n-1)ème élément de rendu. |
else: | Sinon, |
n=n-1 | on décrémente n de 1. |
return rendu | On retourne la valeur de rendu. |
On applique l’algorithme pour rendre 15,45 €, soit 1545 centimes.
{1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000}
On doit prendre 15,45 € avec le minimum de pièces possible, on doit donc rendre 1 pièce de 0,05 €, 2 pièces de 0,20 €, 1 billet de 5 € et 1 billet de 10 €.
On peut démontrer qu’avec les euros, cet algorithme donne toujours une réponse optimale, on dit donc qu’il est canonique.
Des quiz et exercices pour mieux assimiler sa leçon
La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.
Des exercices variés pour ne pas s’ennuyer
Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !
Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.
Des quiz pour une évaluation en direct
Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.
myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.
Des vidéos et des podcasts pour apprendre différemment
Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.
Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !
Des podcasts pour les révisions
La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.
Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.
Des vidéos de cours pour comprendre en image
Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !