ForHosting KIT · Strumenti per sviluppatori

Calcolatore lunghezze Huffman

Inserisca le frequenze 5, 9, 12, 13, 16 e 45 e ottenga le lunghezze ottimali di Huffman 4, 4, 3, 3, 3 e 1: 224 bit in totale e 2,24 bit per simbolo in media, accanto all'entropia per il confronto. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Frequenze
5, 9, 12, 13, 16, 45
Ottiene
Numero di simboli
6
Lunghezze
4, 4, 3, 3, 3, 1
Frequenza totale
100
Bit totali
224

La codifica di Huffman è il classico codice prefisso binario a ridondanza minima usato in ZIP, PNG, DEFLATE, JPEG e in innumerevoli laboratori didattici. In base a quanto spesso compare ogni simbolo, l'algoritmo assegna stringhe di bit più corte ai simboli frequenti e più lunghe a quelli rari, così che nessun codice sia prefisso di un altro. Questo calcolatore di lunghezze del codice Huffman accetta un elenco di frequenze strettamente positive, costruisce l'albero di Huffman ottimale con spareggio deterministico e restituisce la lunghezza di codice di ogni simbolo, il numero totale di bit codificati del multinsieme, la lunghezza media, l'entropia di Shannon in bit per il confronto, la ridondanza e la somma di Kraft. Un alfabeto a un solo simbolo riceve lunghezza zero, il codice vuoto che soddisfa ancora la proprietà di prefisso.

Cosa significano le lunghezze Huffman ottimali e come si costruisce l'albero

Un codice prefisso binario associa a ogni simbolo dell'alfabeto una stringa di bit tale che nessun codice sia prefisso proprio di un altro; tale proprietà consente al decodificatore di analizzare un flusso concatenato senza separatori. La costruzione è semplice ed esatta: si colloca ogni simbolo in una coda di priorità indicizzata per frequenza; si estraggono ripetutamente i due nodi più leggeri, si crea un genitore il cui peso è la loro somma e si reinserisce il genitore finché resta una sola radice.

La lunghezza di codice di una foglia è la sua profondità in quell'albero. Quando due nodi condividono lo stesso peso, questa implementazione spartisce con un identificatore di inserimento stabile, così che ingressi identici producano sempre gli stessi vettori di lunghezze tra runtime. Per un solo simbolo la lunghezza ottimale è zero: il codice vuoto non usa bit e forma ancora un codice prefisso valido per un alfabeto singleton.

Con due o più simboli ogni lunghezza è almeno uno. La somma di Kraft di due elevato a meno ogni lunghezza è al più uno per qualsiasi codice prefisso completo ed è riportata affinché Lei possa verificare la disuguaglianza di Kraft senza ricostruire l'albero.

Dove servono le lunghezze di Huffman, e i loro limiti

I corsi di teoria dell'informazione e i colloqui di programmazione usano un calcolatore di lunghezze del codice Huffman affinché gli studenti verifichino profondità ottimali e bit totali senza disegnare a mano l'albero di ogni tabella di frequenze. Gli ingegneri della compressione confrontano la lunghezza media di Huffman con l'entropia di Shannon per dimensionare intestazioni, scegliere tabelle statiche o dinamiche, o insegnare perché i codici in stile DEFLATE restano vicini al bound di entropia. Una validazione fallita non consuma saldo.

Mantenga gli alfabeti entro il massimo pubblicato, invii solo conte strettamente positive anziché mescolare zeri che richiederebbero casi speciali, e fissi nei test l'array lengths restituito.

Pratica in aula e colloqui

Gli studenti incollano frequenze di simboli positive e verificano lunghezze Huffman ottimali, bit totali e lunghezza media rispetto ad alberi disegnati a mano.

Controlli di progettazione della compressione

Gli ingegneri confrontano la lunghezza media di Huffman con l'entropia di Shannon su istogrammi empirici prima di scegliere tabelle statiche o codici fissi.

Come si calcolano le lunghezze del codice Huffman dalle frequenze?

Invii un array non vuoto di frequenze strettamente positive.

Quale lunghezza riceve un singolo simbolo?

Lunghezza zero. Un alfabeto a un simbolo non necessita di bit sotto un codice prefisso a ridondanza minima; il codice vuoto è valido e ottimale.

Sono ammesse frequenze zero?

Ometta i simboli non usati o invii solo conte strettamente positive.

Lo strumento restituisce le stringhe di bit 0/1 effettive?

No. Restituisce lunghezze ottimali e aggregati (bit totali, lunghezza media, entropia, somma di Kraft). Lei può assegnare qualsiasi etichettatura sinistra/destra che rispetti quelle profondità.

Perché la lunghezza media supera l'entropia?

L'entropia di Shannon è un limite inferiore per la lunghezza media di qualsiasi codice decodificabile senza ambiguità. La ridondanza è la lunghezza media meno l'entropia, quindi non è mai negativa; un valore piccolo indica un codice vicino all'ottimo.

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.

POSThttps://api.kit.forhosting.com/dev/huffman-code-length

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev/huffman-code-length \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"frequencies":[5,9,12,13,16,45]}'
{
  "frequencies": [
    5,
    9,
    12,
    13,
    16,
    45
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.huffman_code_length",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Il percorso gratuito del browser e l'API prepagata condividono un unico modulo analitico puro, così oracoli per i compiti e pipeline di produzione non divergono mai sulle lunghezze. Una validazione fallita solleva invalid_input e non viene addebitata.

Cosa significano le lunghezze Huffman ottimali e come si costruisce l'albero

Tra tutti i codici prefisso binari, un codice di Huffman minimizza la lunghezza di cammino pesata Σ frequency_i per length_i per un dato vettore di frequenze positive. Il total_bits restituito è la somma di frequenza per lunghezza ed è il costo esatto in bit di codificare un multinsieme le cui conte coincidono con le frequenze. La lunghezza media è total_bits diviso la frequenza totale; l'entropia di Shannon in bit è un limite inferiore della lunghezza media per qualsiasi codice univocamente decodificabile, quindi redundancy_bits è la lunghezza media meno l'entropia ed è sempre non negativa entro la precisione in virgola mobile.

Contratto di ingresso, campi di risposta, alias e comportamento degli errori

Invii un corpo JSON con frequencies come un array non vuoto di numeri finiti strettamente positivi; sono accettati gli alias freqs, weights, counts e freq, e una stringa separata da virgole o spazi funziona per moduli di testo semplici. Labels opzionali (alias symbols, names, alphabet) possono fornire un array parallelo di stringhe non vuote della stessa lunghezza per righe leggibili. Frequenze zero, negative, mancanti, vuote o non finite falliscono con invalid_input indicando l'indice errato. Più di quattromilanovantasei simboli vengono rifiutati per mantenere rapidi i percorsi Worker e browser. In caso di successo il corpo include symbol_count; l'array frequencies ripulito; lengths nello stesso ordine; total_frequency; total_bits; average_length; min_length e max_length; shannon_entropy_bits; redundancy_bits; kraft_sum; method impostato a huffman_optimal_lengths; formula che riassume la regola di profondità; labels opzionali se forniti; e symbol_rows con index, frequency, length, bits e label opzionale per simbolo. Le frequenze classiche da manuale cinque, nove, dodici, tredici, sedici e quarantacinque producono total_bits duecentoventiquattro e lunghezza media 2.24 bit per simbolo sotto quest'ordine di combinazione deterministico. Abbini le lunghezze alla propria assegnazione di stringhe di bit se le servono codici 0/1 espliciti; questo endpoint restituisce solo lunghezze e aggregati, non un'etichettatura particolare sinistra-zero versus destra-zero dei rami.

Dove un'API di lunghezze Huffman è utile, prezzi e limiti

Poiché l'implementazione è parse di livello A pura, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita.

Oracoli CI per test di codec

Le pipeline fissano array deterministici di total_bits e lengths affinché cambiamenti di istogramma o alfabeto facciano fallire i test immediatamente.

Quanto costa il calcolatore di lunghezze del codice Huffman?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non viene addebitato.

Leggi la documentazione completa del KIT →