J'ai un problème dans mon projet informatique
jee pee Messages postés 41531 Date d'inscription Statut Modérateur Dernière intervention -
Mon projet est de réaliser un programme de rendu de monnaie à l'aide de la programmation dynamique et nous devons valider des compétences. Ma compétence est représenter l'organisation des données voici mon texte :
D'abord il faut définir notre ensemble des pièces de monnaie disponibles. Ceci est important pour déterminé quelle(s) pieces(s) nous pouvons utiliser pour rendre une somme donnée.
Lorsqu'on initialise notre algorithme de programmation dynamique, nous utilisons cet ensemble qui sera sous forme de liste pour déterminer les options disponibles. Par exemple, si nous disposons de pièces de 1 euros, 2 euros, 5 euros et 10 euros nous utlisions donc la liste [1,2,5,10] pour savoir quelles pièces nous pouvons utiliser pour rendre une somme donnée.
Ensuite, on aura besoin *d'un tableau de programmation dynamique *: Le tableau de programmation dynamique est utilisé pour stocker les résultats intermédiaires de notre algorithme.
Chaque *indice* de ce tableau représente le nombre minimum de pièces nécéssaires pour rendre une certaine somme d'argent.
Par exemple : si nous avons un tableau "argent" alors argent[i] représente le nombre minimum de pièces nécéssaires pour rendre la somme 'i' comme dans le cas où on utliserai le systeme précédent cela donnerait : *[(0,0,0),(1,0,0),(2,0,0),(2,1,0)...]*
Ce qui est entre '*' est faux selon mon prof aidez moi à trouvez et corriger les erreurs svp
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique
- Le code ascii en informatique - Guide
- Cable reseau player freebox - Forum Freebox
- Clé usb non detecté - Guide
- Comment détecter un traceur sur téléphone - Accueil - Confidentialité
- Nous n'avons pas pu nous connecter à ce réseau - Forum Windows 10
3 réponses
Bonjour,
1/ *d'un tableau de programmation dynamique *: Je dirais que l'on aura besoin d'un algorithme pour trouver le nombre optimum de pièces à rendre. On ne va pas enregistrer, à l'avance, toutes les possibilités.
2/ *indice* Ton indice c'est juste le numéro d'une possibilité. Pas le nombre de pièces à rendre qui devrait être la somme des valeurs du tableau d'indice i. Même si le tableau argent[] n'a pas de raison d'exister (cf 1), avec 4 pièces, ton exemple du tableau avec seulement 3 compteurs n'est pas cohérent.
bonjour,
ton tableau n'est pas correct. cela devrait être:
[(0,0,0),(1,0,0),(0,1,0),(1,1,0)...]
Surtout, tu as écrit tout cela avant d'avoir précisément compris comment ton algorithme de programmation dynamique allait se comporter. Tu écris des généralités, sans décrire ton algorithme.
Es-tu certain de disposer d'un nombre infini de piéces de chaque valeur? Si c'est le cas, je ne vois pas l'interet d'utiliser un algorithme de programmation dynamique pour faire ce calcul.
Habituellement, en programmation dynamique, on mémorise toutes les solutions des sous-ensembles du problème, puis on parcourt très rapidement cela pour trouver la solution au problème.
La clé de tout cela, c'est de définir intelligemment quels sont ces sous-ensembles:
C'est une façon assez fascinante de résoudre des problèmes d'optimisation. Au départ, c'est beaucoup moins intuitif que la récursivité, et, pour certains problèmes, extrèmement plus efficace.
D'accord. Je vois bien l'utilisation si par exemple pour la monnaie à rendre, on avait la caisse du supermarché devant nous, avec tant de pièces pour chaque valeur.