Il problema del francobollo è un indovinello matematico che chiede qual è il valore di affrancatura più piccolo che non può essere inserito su una busta, se la lettera può contenere solo un numero limitato di francobolli, e questi possono hanno solo determinati valori facciali specificati.Valore massimo dei francobolli su una busta
Ad esempio, si supponga che la busta possa contenere solo tre timbri ei valori di timbri disponibili sono 1 cent, 2 centesimi, 5 centesimi e 20 centesimi. Quindi la soluzione è di 13 centesimi; poiché qualsiasi valore più piccolo può essere ottenuto con al massimo tre timbri (ad esempio 4 = 2 + 2, 8 = 5 + 2 + 1, ecc.), ma per ottenere 13 centesimi è necessario utilizzare almeno quattro timbri.
Esiste un algoritmo che fornisce la quantità massima di francobolli consentiti e il valore nominale dei francobolli, si può trovare la più piccola spedizione che non può essere posizionata sulla busta?
altro esempio:
massimo di 5 francobolli possono essere usati
stimato: 1, 4, 12, 21
Il valore minimo che non può essere raggiunto è 72. I valori 1-71 possono essere creati con una certa combinazione .
Alla fine probabilmente userò Java per codificarlo.
c'è un motivo per cui il metodo di forza bruta per risolvere questo problema è insufficiente? (o non sai qual è il metodo della forza bruta?) –
@Mark - Un metodo di forza bruta è quello che voglio, il mio funziona solo non è ottimale, sto solo cercando un metodo di forza bruta ottimale. –
Ad esempio con il mio algoritmo, ci vogliono circa 4 minuti su una CPU veloce per risolvere un problema di dimensione busta 10, dove ho un amico che è riuscito a farlo in meno di 10 secondi. –