Dividere contanti in banconote e monete
Questo calcolatore di tagli trova un modo esatto per comporre un totale con le banconote e le monete indicate da Lei.
Esegui gratis nel browser
Riduce al minimo il numero di pezzi fisici senza presupporre una valuta nazionale né affidarsi al comune metodo greedy per il resto. Inserisca l’importo e i tagli disponibili, compresi i valori decimali delle monete. Il risultato elenca ogni taglio con la quantità richiesta, riporta il numero totale di pezzi e rifiuta chiaramente gli importi che non possono essere composti con esattezza.
Inserisca l’importo e i tagli che può utilizzare
Inizi dall’importo totale in contanti che deve preparare, quindi indichi i valori disponibili di banconote e monete. Il calcolatore è indipendente dalla valuta: valori come 20, 10, 5, 1, 0.25 e 0.10 sono adatti a una moneta decimale, mentre un insieme diverso può rappresentare buoni, gettoni o una cassa priva di alcuni tagli. Importi e tagli possono avere fino a due cifre decimali; il calcolo resta così esatto nell’unità monetaria più piccola, senza derive dovute alla virgola mobile. Ogni taglio deve essere positivo e non ripetuto. Il risultato ordina i valori dal maggiore al minore e include una quantità per ciascuno, anche zero quando un taglio non serve. Può quindi copiarlo facilmente in un prospetto di cassa, una distinta di preparazione, un piano di prelievo o un registro di riconciliazione. Il calcolatore presume una disponibilità illimitata di ogni taglio elencato: la lista specifica quali valori esistono, non quanti singoli pezzi siano effettivamente presenti.
Perché il risultato usa davvero il numero minimo di pezzi
In molti sistemi monetari comuni sembra bastare una regola semplice: scegliere ripetutamente il taglio più grande che non superi l’importo residuo. Questa scorciatoia greedy è veloce, ma non è corretta per ogni serie di tagli. Gettoni insoliti, coupon per eventi, monete straniere o una cassa senza valori comuni possono rendere più breve una combinazione che parte da tagli inferiori. Questo calcolatore usa la programmazione dinamica. Valuta i subtotali raggiungibili, registra il minor numero di pezzi capace di produrre ciascuno di essi e poi ricostruisce una combinazione esatta per il totale richiesto. Poiché prima del calcolo tutti i valori vengono convertiti in unità monetarie minori intere, i confronti sono esatti per gli input con due decimali. Se più combinazioni hanno lo stesso minimo, l’ordine deterministico privilegia prima i tagli maggiori; richieste identiche restituiscono quindi sempre lo stesso dettaglio. L’elaborazione è limitata per mantenere reattivi il browser e l’API. Tagli estremamente piccoli abbinati a un totale molto elevato possono superare il limite pubblicato di lavoro normalizzato e vengono rifiutati anziché essere elaborati senza un vincolo pratico.
Comprenda gli errori di corrispondenza esatta e usi il risultato correttamente
Una soluzione esatta non esiste sempre. Se tutti i tagli disponibili sono multipli di cinque centesimi, per esempio, non è possibile comporre un importo che termina con tre centesimi, qualunque sia il numero di pezzi. Il calcolatore segnala questa condizione come errore di input, invece di restituire un importo vicino, arrotondare silenziosamente il totale o inventare un taglio. La distinzione è importante nella riconciliazione di cassa, nei pacchetti di resto preparati e nei pagamenti controllati, dove anche un piccolo difetto o eccesso rimane scorretto. Una risposta valida riporta l’importo normalizzato, il numero totale minimo di pezzi e il dettaglio per taglio. Le quantità pari a zero restano visibili, così l’output rappresenta l’intero insieme fornito e può essere allineato a un modulo d’inventario. Prima di applicare il piano, ricordi che l’algoritmo considera illimitata la disponibilità di ciascun valore. Se la Sua cassa contiene quantità limitate, confronti la proposta con le scorte; questa capacità non risolve il diverso problema dell’inventario vincolato. Lo stesso calcolo deterministico funziona nel browser e tramite API a $0.002 per richiesta.
Casi d'uso
Preparare buste per pagamenti in contanti
Trasformi ogni pagamento esatto in una distinta con il minimo di pezzi usando soltanto i tagli autorizzati.
Pianificare il rifornimento della cassa
Trovi una combinazione compatta per un importo obiettivo quando sono ammessi solo determinati tagli.
Distribuire buoni o gettoni per eventi
Usi una serie di valori non standard e individui gli importi che i gettoni disponibili non possono rappresentare esattamente.
Domande frequenti
Il calcolatore trova sempre il minor numero di banconote e monete?
Sì. Esamina i subtotali raggiungibili con la programmazione dinamica e restituisce una combinazione esatta con il minimo totale di pezzi.
Posso usare tagli decimali per le monete?
Sì. L’importo e i tagli possono avere fino a due cifre decimali, come 0.25 o 0.05.
Cosa accade se l’importo non può essere composto esattamente?
La richiesta restituisce un errore di input che spiega perché i tagli forniti non formano l’importo esatto. Non viene mai arrotondato a un totale vicino.
Il calcolatore considera le quantità limitate nella mia cassa?
No. Ogni taglio elencato è considerato disponibile senza limiti. Le scorte non fanno parte di questa capacità.
Perché la risposta può differire dalla scelta del taglio più grande per primo?
Il metodo greedy dal maggiore al minore può essere subottimale con tagli personalizzati. Questo calcolatore prova le combinazioni e garantisce il minimo di pezzi.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso calcolatore deterministico è disponibile gratuitamente nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/travel2/currency-cash-denomination-split \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":18.85,"denominations":[10,5,2,1,0.25,0.1,0.05]}'const res = await fetch("https://api.kit.forhosting.com/travel2/currency-cash-denomination-split", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amount": 18.85,
"denominations": [
10,
5,
2,
1,
0.25,
0.1,
0.05
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel2/currency-cash-denomination-split",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amount": 18.85,
"denominations": [
10,
5,
2,
1,
0.25,
0.1,
0.05
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel2/currency-cash-denomination-split", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amount":18.85,"denominations":[10,5,2,1,0.25,0.1,0.05]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amount":18.85,"denominations":[10,5,2,1,0.25,0.1,0.05]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel2/currency-cash-denomination-split", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"amount": 18.85,
"denominations": [
10,
5,
2,
1,
0.25,
0.1,
0.05
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel2.currency_cash_denomination_split",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_denominations | 100 |
max_normalized_amount | 250000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |