IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Rendu de monnaie


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Rendu de monnaie
    Bonjour,
    je commence en algo et j'ai un exercice que je n'arrive pas à réaliser.
    "On souhaite realiser un algo qui à partir d'un montant saisie affiche la décomposition de ce montant en billets de 100, 50, 10 euros et en pieces de 2 et 1 euros".
    J'ai déterminer les variables qui sont somme:reel
    b100 B50 B10 B2 et B1:reel

    Merci de m'aider

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Et on te demande d'afficher toutes les combinaisons possibles ? Une seule ? La "meilleure" (selon quel critère ?) ? On a précisé quel type d'algo tu devais utiliser ? glouton, dynamique, autre ?

    --
    Jedaï

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Et on te demande d'afficher toutes les combinaisons possibles ? Une seule ? La "meilleure" (selon quel critère ?) ? On a précisé quel type d'algo tu devais utiliser ? glouton, dynamique, autre ?

    --
    Jedaï
    A la vue de énoncé, il y a de grandes chances que le but soit d'implémenter l'algorithme glouton.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    glouton, dynamique,
    En fait, restons raisonnables, l'algorithme naïf suffira. N'oublions pas qu'il débute en algorithmique . Pas besoin de se perdre dans les noms compliqués (bien que l'algorithme naïf est glouton )

    Ce qu'il faut faire, c'est utiliser massivement (enfin tout est relatif), la division euclidienne et le modulo. Avec ceci tu devrais pouvoir te débrouiller.

    L'algorithme naïf est simple, appelons x la somme que tu veux redistribuer. Commences par déterminer le nombre n de billets de 100 dans x. Une fois ceci déterminé, enleve ces n billets à x, tu obtiens un reste r ( inférieur à 100 donc), il faut maintenant déterminer le nombre de billets de 50 dans r et ainsi de suite ...

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    En fait, restons raisonnables, l'algorithme naïf suffira. N'oublions pas qu'il débute en algorithmique . Pas besoin de se perdre dans les noms compliqués (bien que l'algorithme naïf est glouton )
    C'est officiel le nom d' "algorithme naïf" ?

    Je pensais justement que le nom de cet algo etait "glouton" (ou greedy en anglais).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    C'est officiel le nom d' "algorithme naïf" ?

    Je pensais justement que le nom de cet algo etait "glouton" (ou greedy en anglais).
    Quel naïveté !

    Algorithme "naïf" désigne toujours l'algorithme "le plus simple" pour résoudre un problème (n'étant pas en mathématique, nous nous abstiendrons de définir ce "plus simple"...). Dans notre cas il s'agit de l'algorithme glouton, mais dans d'autres, l'algorithme naïf n'a rien de glouton (par exemple l'algorithme naïf pour déterminer la primalité d'un nombre).

    --
    Jedaï

  7. #7
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Et on te demande d'afficher toutes les combinaisons possibles ? Une seule ? La "meilleure" (selon quel critère ?) ? On a précisé quel type d'algo tu devais utiliser ? glouton, dynamique, autre ?

    --
    Jedaï
    C'est pas dans ce type d'algorithmes qu'on parle de glouton (greedy), c'est par exemple dans le cas de l'algorithme de DIJKSTRA pour la recherche du plus court chemin qui utilise une stratégie gloutone lorsqu'il choisit le sommet le moins coûteux à chaque étape !

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    C'est pas dans ce type d'algorithmes qu'on parle de glouton (greedy), c'est par exemple dans le cas de l'algorithme de DIJKSTRA pour la recherche du plus court chemin qui utilise une stratégie gloutone lorsqu'il choisit le sommet le moins coûteux à chaque étape !
    Bien sûr, bien sûr... Néanmoins l'algorithme que tu as donné est l'algorithme glouton (il choisit toujours de dépenser le maximum du plus gros billet possible), c'est son nom officiel, comment m'expliques-tu ce paradoxe ?

    --
    Jedaï

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    C'est pas dans ce type d'algorithmes qu'on parle de glouton (greedy)
    ??

    On parle d'algorithme glouton à chaque fois qu'on cherche a approcher la solution globale par la suite des meilleures solutions locales.

    Et c'est bien le cas ici. Si tu dois approcher "500" avec "100, 50, 10, 2 et 1 euros", la première "meilleure" solution locale est 100. Et ansi de suite.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Bien sûr, bien sûr... Néanmoins l'algorithme que tu as donné est l'algorithme glouton (il choisit toujours de dépenser le maximum du plus gros billet possible), c'est son nom officiel, comment m'expliques-tu ce paradoxe ?

    --
    Jedaï
    En d'autres termes, vu que l'auteur du message est un novice en algorithmique, ça ne vaut pas le coup de parler d'algorithme glouton, c'est pas le niveau ni le sujet de ce post !

  11. #11
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    En d'autres termes, vu que l'auteur du message est un novice en algorithmique, ça ne vaut pas le coup de parler d'algorithme glouton, c'est pas le niveau ni le sujet de ce post !
    Ah bon, donc il y a bien un algorithme glouton...
    De toute façon si je demandais ça c'est parce qu'on pouvait lui avoir fourni des indications dans l'énoncé, ou à part. Il pourrait également être en train de suivre un cours d'algorithmique et être dans la section "Algorithme glouton" ou "Programmation dynamique", ce qui fournit certaines indications sur la réponse attendue. Même un novice en algorithmique peut connaître ces termes, ça fait partie des notions qu'on apprend en premier quand on fait de l'algorithmique.

    --
    Jedaï

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Un petit détail, si tu ne comptes pas utiliser une somme avec des centimes, tu peux te contenter de définir tes variables en integer ou cardinal plutot que real...
    Une belle fonction contient au plus 7 lignes de code,
    Une belle procédure appelle au plus 7 fonctions,
    Un beau programme est lisible et compréhensible,
    Dans tous les autres cas, une optimisation s'impose.

  13. #13
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    J'en remet une louche par rapport au post précédent. A propos des centimes et pour ce genre de problèmes ne JAMAIS utiliser de flottants! Toujours travailler, pour les traitements, avec l'unité la plus petite et avec des entiers éventuellement longs, quitte à remettre des virgules pour les entrées sorties.
    La raison:
    1.20 +0.30+0.50 a toutes les chances de ne pas faire 2 ...
    En outre, le problème est 'naturellement' récursif.
    Le truc devient un peu plus intéressant quand le stock de chaque unité est limité (problème du distributeur) et qu'il faut donner 2+2+1 parce qu'on n'a plus de 5...
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  14. #14
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Un algo dit "glouton", signifie simplement que certains résultats ne seront plus remis en question (un glouton est quelqu'un qui avale et ne peut pas revenir en arrière, c'est-à-dire ne peut pas remettre en cause ce qu'il vient de faire).
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    l'algorithme glouton est très intéressant pour résoudre un certains nombre de programme cependant j'ai un problème pour ce qui est d'obtenir toutes les combinaisons possibles...
    par exemple nous avons 400e et les billets et pièces de 200 100 50 20 10, et je n'arrive pas a obtenir toutes les combinaisons...

Discussions similaires

  1. Algo rendu de monnaie
    Par Matt_NewDev dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 28/03/2012, 17h24
  2. Algorithme glouton et problème du rendu de monnaie
    Par quentinzone dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/01/2012, 11h49
  3. Rendu de monnaie + CombinaisonS
    Par esco123 dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 19/05/2008, 16h41
  4. Un objet rendu apparaît derrière un autre objet
    Par jamal24 dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2003, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo