ForHosting KIT · Ferramentas para dev

Calculadora comprimentos Huffman

Digite as frequências 5, 9, 12, 13, 16 e 45 e receba os comprimentos ótimos de Huffman 4, 4, 3, 3, 3 e 1: 224 bits no total e 2,24 bits por símbolo em média, ao lado da entropia para comparar. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Frequências
5, 9, 12, 13, 16, 45
Você obtém
Quantidade de símbolos
6
Comprimentos
4, 4, 3, 3, 3, 1
Frequência total
100
Total de bits
224

A codificação Huffman é o código de prefixo binário clássico de mínima redundância usado em ZIP, PNG, DEFLATE, JPEG e em inúmeros laboratórios de ensino. Dada a frequência de cada símbolo, o algoritmo atribui cadeias de bits mais curtas aos símbolos frequentes e mais longas aos raros, de modo que nenhum código seja prefixo de outro. Esta calculadora de comprimentos de código Huffman aceita uma lista de frequências estritamente positivas, constrói a árvore de Huffman ótima com desempate determinístico e devolve o comprimento de código de cada símbolo, o número total de bits codificados do multiconjunto, o comprimento médio, a entropia de Shannon em bits para comparação, a redundância e a soma de Kraft. Um alfabeto de um único símbolo recebe comprimento zero, o código vazio que ainda satisfaz a propriedade de prefixo.

O que significam os comprimentos Huffman ótimos e como a árvore é construída

Um código de prefixo binário mapeia cada símbolo do alfabeto a uma cadeia de bits de forma que nenhum código seja prefixo próprio de outro; essa propriedade permite ao decodificador analisar um fluxo concatenado sem separadores. A construção é simples e exata: coloque cada símbolo numa fila de prioridade indexada por frequência; extraia repetidamente os dois nós mais leves, crie um pai cujo peso é a soma deles e reintroduza o pai até restar uma raiz. O comprimento de código de uma folha é a sua profundidade nessa árvore.

Quando dois nós partilham o mesmo peso, esta implementação desempatam com um identificador de inserção estável, de modo que entradas idênticas produzam sempre os mesmos vetores de comprimentos entre runtimes. Para um símbolo o comprimento ótimo é zero: o código vazio não usa bits e ainda forma um código de prefixo válido para um alfabeto singleton. Com dois ou mais símbolos todo comprimento é pelo menos um.

A soma de Kraft de dois elevado a menos cada comprimento é no máximo um em qualquer código de prefixo completo e é reportada para que voce possa verificar a desigualdade de Kraft sem reconstruir a árvore.

Onde os comprimentos de Huffman ajudam e seus limites

Cursos de teoria da informação e entrevistas de programação usam uma calculadora de comprimentos de código Huffman para que alunos verifiquem profundidades ótimas e bits totais sem desenhar à mão a árvore de cada tabela de frequências. Engenheiros de compressão comparam o comprimento médio de Huffman com a entropia de Shannon ao dimensionar cabeçalhos, escolher tabelas estáticas ou dinâmicas, ou ensinar por que códigos no estilo DEFLATE ficam perto do limite de entropia. Validação falhada não consome saldo.

Mantenha alfabetos dentro do máximo publicado, envie apenas contagens estritamente positivas em vez de misturar zeros que exigiriam casos especiais, e fixe nos testes o array lengths devolvido.

Prática em sala e entrevistas

Alunos colam frequências positivas de símbolos e verificam comprimentos Huffman ótimos, bits totais e comprimento médio face a árvores desenhadas à mão.

Verificações de desenho de compressão

Engenheiros comparam o comprimento médio de Huffman com a entropia de Shannon em histogramas empíricos antes de escolher tabelas estáticas ou códigos fixos.

Como calcular comprimentos de código Huffman a partir de frequências?

Envie um array não vazio de frequências estritamente positivas.

Que comprimento recebe um único símbolo?

Comprimento zero. Um alfabeto de um símbolo não precisa de bits sob um código de prefixo de mínima redundância; o código vazio é válido e ótimo.

Frequências zero são permitidas?

Omita símbolos não usados ou envie apenas contagens estritamente positivas.

A ferramenta devolve as cadeias de bits 0/1 reais?

Não. Devolve comprimentos ótimos e agregados (bits totais, comprimento médio, entropia, soma de Kraft). Voce pode atribuir qualquer etiquetado esquerda/direita que respeite essas profundidades.

Por que o comprimento médio fica acima da entropia?

A entropia de Shannon é um limite inferior para o comprimento médio de qualquer código que possa ser decodificado sem ambiguidade. A redundância é o comprimento médio menos a entropia, então nunca é negativa; um valor pequeno mostra que o código está perto do ótimo.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

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

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

O caminho gratuito do navegador e a API pré-paga partilham um único módulo analítico puro, para que oráculos de exercícios e pipelines de produção nunca discordem nos comprimentos. Validação falhada lança invalid_input e não é cobrada.

O que significam os comprimentos Huffman ótimos e como a árvore é construída

Entre todos os códigos de prefixo binários, um código de Huffman minimiza o comprimento de caminho ponderado Σ frequency_i vezes length_i para um vetor de frequências positivas dado. O total_bits devolvido é a soma de frequência vezes comprimento e é o custo exato em bits de codificar um multiconjunto cujas contagens coincidem com as frequências. O comprimento médio é total_bits dividido pela frequência total; a entropia de Shannon em bits é um limite inferior do comprimento médio para qualquer código univocamente decodificável, pelo que redundancy_bits é o comprimento médio menos a entropia e é sempre não negativo dentro da precisão em ponto flutuante.

Contrato de entrada, campos de resposta, aliases e comportamento de erro

Envie um corpo JSON com frequencies como um array não vazio de números finitos estritamente positivos; os aliases freqs, weights, counts e freq são aceites, e uma cadeia separada por vírgulas ou espaços funciona em formulários de texto simples. Labels opcionais (aliases symbols, names, alphabet) podem fornecer um array paralelo de cadeias não vazias do mesmo comprimento para linhas legíveis. Frequências zero, negativas, em falta, vazias ou não finitas falham com invalid_input indicando o índice incorreto. Mais de quatro mil noventa e seis símbolos são rejeitados para manter rápidos os caminhos de Worker e do navegador. Em sucesso o corpo inclui symbol_count; o array frequencies limpo; lengths na mesma ordem; total_frequency; total_bits; average_length; min_length e max_length; shannon_entropy_bits; redundancy_bits; kraft_sum; method igual a huffman_optimal_lengths; formula que resume a regra de profundidade; labels opcionais quando fornecidos; e symbol_rows com index, frequency, length, bits e label opcional por símbolo. As frequências clássicas de livro cinco, nove, doze, treze, dezasseis e quarenta e cinco produzem total_bits duzentos e vinte e quatro e comprimento médio 2.24 bits por símbolo sob esta ordem de combinação determinística. Associe os comprimentos à sua própria atribuição de cadeias de bits se precisar de códigos 0/1 explícitos; este endpoint devolve apenas comprimentos e agregados, não um etiquetado concreto esquerda-zero versus direita-zero dos ramos.

Onde uma API de comprimentos Huffman se justifica, preços e limites

Como a implementação é parse de nível A puro, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.

Oráculos de CI para testes de codecs

Pipelines fixam arrays determinísticos de total_bits e lengths para que mudanças de histograma ou alfabeto falhem os testes de imediato.

Quanto custa a calculadora de comprimentos de código Huffman?

A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.

Ver a documentação completa do KIT →