Étant donné un ensemble de pièces de monnaie de dénominations différentes et une valeur v, vous voulez trouver le moins de pièces nécessaires pour représenter la valeur v.
Par exemple, pour le jeu de pièces 1,5,10,20, cela donne 2 pièces pour la somme 6 et 6 pièces pour la somme 19.
Ma question principale est: quand peut-on utiliser une stratégie gourmande pour résoudre ce problème?
Points bonus: cette déclaration est-elle tout à fait incorrecte? (De: Comment savoir si un algorithme gourmand suffit pour le problème de changement de pièce minimum? )
Cependant, cet article a une preuve que si l'algorithme gourmand fonctionne pour le premier plus grand denom + les deuxièmes valeurs de denom le plus grand, alors il fonctionne pour tous, et il suggère d'utiliser simplement l'algorithme gourmand vs l'algorithme DP optimal pour le vérifier. http://www.cs.cornell.edu/~kozen/papers/change.pdf
Ps. notez que les réponses dans ce fil sont incroyablement minables - c'est pourquoi j'ai posé la question à nouveau.
la source
Réponses:
Un système de pièces est canonique si le nombre de pièces données en monnaie par l'algorithme gourmand est optimal pour tous les montants.
L'article D. Pearson. Un algorithme à temps polynomial pour le problème de changement. Operations Reseach Letters, 33 (3): 231-234, 2005 propose un algorithme pour décider si un système de pièces est canonique, où n est le nombre de différents types de pièces. Du résumé:O ( n3) n
Le document est assez court.
Il y a aussi une discussion dans cette question se.math .
la source
canonical coin system
. Ce serait génial si vous pouviez ajouter un exemple, à savoir comment tester le système suggéré1,5,10,20