2015-05-09 13 views
5

Das Problem macht n Cents Änderung mit Vierteln, Groschen, Nickel und Pennies, und mit der geringsten Gesamtanzahl von Münzen. In dem speziellen Fall, in dem die vier Nennwerte Viertel, Groschen, Nickel und Pennies sind, haben wir c1 = 25, c2 = 10, c3 = 5 und c4 = 1.Münzwechsel: Gieriger Ansatz

nur Viertel, Groschen, und ein paar Cent (und keine Nickels) zu verwenden, der greedy-Algorithmus würde Änderung machen für 30 Cent mit sechs Münzen -a Quartal und fünf Cent-während wir drei Münzen verwendet haben könnten, nämlich drei Groschen.

Angesichts einer Reihe von Nennungen, wie können wir sagen, ob Greedy-Ansatz eine optimale Lösung schafft?

+0

Fragen Sie, wie Sie das lösen können? Es gibt eine einfache dynamische Programmierlösung dafür. –

+0

@AmiTavory Ich las Diskrete Mathematik und es ist Anwendungen von Rosen und er hatte dieses Beispiel in seinem Buch zitiert. Auch ich dachte, das Problem sei dem Knapsack-Problem ähnlich und wurde von einer gierigen Lösung überrascht. – bhavya

+0

Sorry, aber (zumindest) verstehe ich einfach nicht, was genau du fragst. Vielleicht könnten Sie Ihre Frage etwas bearbeiten. –

Antwort

1

Was Sie fragen, ist, wie man entscheidet, ob ein gegebenes Münzsystem kanonisch für das Problem der Änderung ist. Ein System ist kanonisch, wenn der Greedy-Algorithmus immer eine optimale Lösung liefert. Sie können entscheiden, ob ein System von Münzen, das ein 1-Cent-Stück enthält, in einer endlichen Anzahl von Schritten kanonisch ist oder nicht. Details und effizientere Algorithmen in bestimmten Fällen finden Sie in http://arxiv.org/pdf/0809.0400.pdf.