Change-making problem : Dynamic method

Il problema di change-making affronta la questione di trovare il numero minimo di monete (di determinate denominazioni) che si sommano a una data quantità di denaro. È un caso speciale del problema dello zaino intero e ha applicazioni più ampie della semplice valuta.

è anche il più comune variazione del cambio monete problema, un caso generale di partizione in cui, considerate le confessioni di un insieme infinito di monete, l’obiettivo è quello di trovare il numero di modi possibili di fare un cambiamento per una specifica quantità di denaro, senza considerare l’ordine delle monete.

fare il cambiamento è un problema di minimizzazione, scegliamo la soluzione in cui dobbiamo dare un minimo di monete per un determinato importo.

  1. Metodo avido

2. Metodo dinamico

programmazione dinamica

Una classica strategia di programmazione dinamica funziona verso l’alto trovando le combinazioni di tutti i valori più piccoli che sommerebbero alla soglia corrente.Così, ad ogni soglia, tutte le precedenti soglie sono considerati potenzialmente a lavorare verso l’alto per l’importo dell’obiettivo W. Per questo motivo, questo approccio di programmazione dinamica può richiedere un certo numero di passi che è almeno quadratica in l’importo dell’obiettivo W.

ottimale cambio monete Abbiamo visto questo, si desidera assicurarsi di modificare l’utilizzo di un sistema di denominazioni, utilizzando il minor numero di monete possibile. A volte l’algoritmo avido fornisce la soluzione ottimale. Ma a volte non lo fa-un esempio è stato il sistema (12, 5, 1), dove l’algoritmo dinamico dà 15 = 12 + 1 + 1 + 1 ma una risposta migliore è 15 = 5 + 5 + 5. ma dynamic dà sempre una soluzione ottimale o possibili monete minime all’interno di quel denominatore.

Passi:-

Troveremo il minimo no. di monete necessarie per l’importo .
Importo è l’importo per il quale stiamo facendo il cambiamento.

per prima cosa imposteremo min. No. di monete necessarie cioè, min = INFINITY
Questo significa che inizialmente non sappiamo quante monete saranno necessarie.

Poi controlliamo ogni monete denominazione e vedere se può essere utilizzato per ottenere la soluzione.

Se è possibile, aggiorniamo le variabili min e coin.
dove, min = minimo no. di monete necessarie per fare il cambiamento per l’importo
coin = primo indice della moneta nella soluzione

Esempio:

Amount = 5

coins = {1,2,3}

Modi per fare il cambiamento = 5

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.