2015-05-09 22 views
5

Il problema sta cambiando di un centesimo con quarti, monetine, monetine e penny e utilizzando il minor numero totale di monete. Nel caso particolare in cui le quattro denominazioni sono quarti, dimes, nickel e penny, abbiamo c1 = 25, c2 = 10, c3 = 5 e c4 = 1.Cambio monete: approccio avido

Se abbiamo solo quarti, dimes, e centesimi (e nessun nichel) da utilizzare, l'algoritmo greedy renderebbe cambiamento per 30 centesimi usando sei monete trimestre -a e cinque centesimi-che abbiamo potuto utilizzare tre monete, ovvero tre monetine.

Dato un insieme di denominazioni, come possiamo dire se l'approccio avido crea una soluzione ottimale?

+0

Stai chiedendo come risolvere questo? C'è una semplice soluzione di programmazione dinamica per questo. –

+0

@AmiTavory Stavo leggendo la matematica discreta e le sue applicazioni di Rosen e aveva citato questo esempio nel suo libro. Anche io pensavo che il problema fosse simile al problema dello zaino e sono rimasto sorpreso da una golosa soluzione – bhavya

+0

Scusa, ma (almeno) non capisco esattamente cosa stai chiedendo. Forse potresti modificare la tua domanda un po '. –

risposta

1

Quello che stai chiedendo è come decidere se un determinato sistema di monete è canonico per il problema della modifica. Un sistema è canonico se l'algoritmo greedy fornisce sempre una soluzione ottimale. Puoi decidere se un sistema di monete che include un pezzo da 1 centesimo è canonico o meno in un numero finito di passaggi. Dettagli e algoritmi più efficienti in alcuni casi sono disponibili in http://arxiv.org/pdf/0809.0400.pdf.