0 Daumen
462 Aufrufe

Aufgabe:


(optimales Wechselgeld). Ein Kassierer benutzt folgende Greedy-Strategie, um Münz-Wechselgeld herauszugeben. Er nimmt immer die wertvollste Münze aus der Kasse, deren Wert den Rest dessen, was er herausgeben muss, nicht übersteigt. Zum Beispiel gibt er den Betrag \( w=99 \) als \( 1 \times 50+2 \times 20+1 \times 10+1 \times 5+2 \times 2 \) heraus (jeweils Cent).

procedure GierigesWeCHSELGELD \( (w, M) \)
Require: \( 1 \in M \)
// w: herauszugebender Betrag
\( / / M=\left(w_{1}, \ldots, w_{n}\right): \) zur Verfügung stehende Münzwerte, aufsteigend sortiert \( c_{i} \leftarrow 0 \quad(i=1, \ldots, n) / / \) Anzahl der Münzen vom Wert \( w_{i} \)
while \( w>0 \) do
\( \begin{array}{l} j \leftarrow \operatorname{argmax}\left\{1 \leq i \leq n \mid w_{i} \leq w\right\} \\ c_{j} \leftarrow c_{j}+1 \\ w \leftarrow w-w_{j} \end{array} \)
nehme \( c_{i} \) Münzen mit Wert \( w_{i} \) für \( i=1, \ldots, n \)

a) Beweise, dass bei dem Euro-Münzsatz \( M=\left(w_{1}, \ldots, w_{n}\right)=\{1,2,5,10,20,50,100,200\} \) GiERIGESWECHSELGELD die kleinste Anzahl an Münzen ergibt, also dass für das vom Algorithmus ausgegebene \( c \) die Anzahl \( \sum \limits_{i=1}^{n} c_{i} \) minimal ist unter allen Münzauswahlen \( c=\left(c_{1}, \ldots, c_{n}\right) \) mit \( \sum \limits_{i=1}^{n} c_{i} w_{i}=w \).

b) Gebe einen Münzsatz \( M=\left(w_{1}, \ldots, w_{n}\right) \) mit \( w_{1}=1 \) an, bei dem GierigesWECH\( \operatorname{SELGELD}(w, M) \) nicht für alle Beträge \( w \) eine minimale Anzahl von Münzen ermittelt.



Hallo zusammen, könnte mir jemand bitte dabei helfen?

Danke im Voraus!

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community