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.
- 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