In un'economia ipotetica ci sono unità monetarie che possono rappresentare migliaia di valori diversi. Quindi, ad esempio, potrebbero esserci monete da 1c, 3c, 5c, 7c, 7.5c, 80c, 8001.5c ecc.
Dato un elenco di tutte le possibili denominazioni e un valore arbitrario come si restituirebbe un elenco di monete che rappresentano il più piccolo numero di monete necessarie per abbinare quel valore.
Per i punti bonus, immagina di avere quantità finite arbitrarie di ogni valuta. Quindi potresti avere solo due monete 3c ma trenta monete da 18c.
Sembra un incubo problema di classe compsci ma è qualcosa che ho incontrato di recente su un mio progetto personale.
L'economia è un'economia di baratto (tf2) in cui ogni tipo di oggetto ha un valore distinto rispetto ad altri elementi. Ho una classe Item in cui gli articoli hanno un attributo Value e questo attributo è un double che rappresenta il valore dell'articolo relativo a un articolo base che ha un valore pari a 1. Sto provando a inventare un modo in modo che se qualcuno fa un'offerta di un valore di 30 Posso quindi guardare attraverso un elenco di circa 1200 oggetti oggetti e trovare il più piccolo insieme di oggetti che combinano in valore per abbinare 30.
Non riesco a pensare a un modo remotamente efficiente per farlo, ma ho pensato che il problema fosse abbastanza interessante che qualcuno avrebbe voluto rifletterci sopra con me. Il mio programma è in c # ma anche un brainstorm di psuedocode sarebbe utile.