Biorąc pod uwagę zestaw monet o różnych nominałach i wartości v, chcesz znaleźć najmniejszą liczbę monet potrzebną do przedstawienia wartości v.
Np. Dla zestawu monet 1,5,10,20 daje to 2 monety dla sumy 6 i 6 monet dla sumy 19.
Moje główne pytanie brzmi: kiedy można zastosować chciwą strategię, aby rozwiązać ten problem?
Punkty bonusowe: Czy to stwierdzenie jest po prostu nieprawidłowe? (Od: Jak stwierdzić, czy chciwy algorytm wystarcza do rozwiązania problemu minimalnej wymiany monet? )
Jednak ten dokument ma dowód, że jeśli chciwy algorytm działa dla pierwszej największej denomu + drugiej największej wartości denomu, to działa dla nich wszystkich i sugeruje użycie algorytmu chciwego w porównaniu z optymalnym algorytmem DP, aby to sprawdzić. http://www.cs.cornell.edu/~kozen/papers/change.pdf
Ps. zwróć uwagę, że odpowiedzi w tym wątku są niesamowicie nieprzyzwoite - dlatego zadałem to pytanie od nowa.
źródło
Odpowiedzi:
System monet jest kanoniczny, jeśli liczba monet podana w zamian przez chciwy algorytm jest optymalna dla wszystkich kwot.
Artykuł D. Pearson. Algorytm czasu wielomianowego dla problemu wprowadzania zmian. Operations Reseach Letters, 33 (3): 231–234, 2005 oferuje algorytm do decydowania, czy system monet jest kanoniczny, gdzie n jest liczbą różnych rodzajów monet. Z streszczenia:O ( n3)) n
Papier jest dość krótki.
W tym pytaniu matematycznym jest także trochę dyskusji .
źródło
canonical coin system
. Byłoby wspaniale, gdybyś mógł dodać przykład, tj. Jak przetestować sugerowany system1,5,10,20