ForHosting KIT · Outils pour développeurs

Calculateur longueurs Huffman

Saisissez les fréquences 5, 9, 12, 13, 16 et 45 et obtenez les longueurs optimales de Huffman 4, 4, 3, 3, 3 et 1 : 224 bits au total et 2,24 bits par symbole en moyenne, à côté de l'entropie pour comparer. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Fréquences
5, 9, 12, 13, 16, 45
Vous obtenez
Nombre de symboles
6
Longueurs
4, 4, 3, 3, 3, 1
Fréquence totale
100
Nombre total de bits
224

Le codage de Huffman est le code préfixe binaire classique à redondance minimale, utilisé dans ZIP, PNG, DEFLATE, JPEG et d'innombrables travaux pratiques. Selon la fréquence de chaque symbole, l'algorithme attribue des chaînes de bits plus courtes aux symboles fréquents et plus longues aux rares, de sorte qu'aucun code ne soit préfixe d'un autre. Ce calculateur de longueurs de code Huffman accepte une liste de fréquences strictement positives, construit l'arbre de Huffman optimal avec départage déterministe et renvoie la longueur de code de chaque symbole, le nombre total de bits codés pour le multiensemble, la longueur moyenne, l'entropie de Shannon en bits pour comparaison, la redondance et la somme de Kraft. Un alphabet à un seul symbole reçoit la longueur zéro, le code vide qui satisfait encore la propriété de préfixe.

Ce que signifient les longueurs Huffman optimales et comment l'arbre est construit

Un code préfixe binaire associe à chaque symbole de l'alphabet une chaîne de bits telle qu'aucun code n'est un préfixe propre d'un autre ; cette propriété permet au décodeur d'analyser un flux concaténé sans séparateurs. La construction est simple et exacte : placez chaque symbole dans une file de priorité indexée par fréquence ; extrayez de façon répétée les deux nœuds les plus légers, créez un parent dont le poids est leur somme, et réinsérez le parent jusqu'à ce qu'il ne reste qu'une racine.

La longueur de code d'une feuille est sa profondeur dans cet arbre. Lorsque deux nœuds partagent le même poids, cette implémentation départage par un identifiant d'insertion stable, de sorte que des entrées identiques produisent toujours les mêmes vecteurs de longueurs entre runtimes. Pour un symbole, la longueur optimale est zéro : le code vide n'utilise aucun bit et forme encore un code préfixe valide pour un alphabet singleton.

Pour deux symboles ou plus, toute longueur vaut au moins un. La somme de Kraft de deux à la puissance moins chaque longueur vaut au plus un pour tout code préfixe complet et est indiquée pour que vous puissiez vérifier l'inégalité de Kraft sans reconstruire l'arbre vous-même.

Où les longueurs de Huffman servent, et leurs limites

Les cours de théorie de l'information et les entretiens de codage utilisent un calculateur de longueurs de code Huffman pour que les étudiants vérifient profondeurs optimales et bits totaux sans dessiner à la main l'arbre de chaque table de fréquences. Les ingénieurs en compression comparent la longueur moyenne de Huffman à l'entropie de Shannon pour dimensionner les en-têtes, choisir des tables statiques ou dynamiques, ou enseigner pourquoi les codes de style DEFLATE restent proches de la borne d'entropie. Une validation échouée ne consomme pas de solde.

Gardez les alphabets dans le maximum publié, envoyez uniquement des comptes strictement positifs plutôt que de mélanger des zéros qui exigeraient des cas particuliers, et figez le tableau lengths renvoyé dans les tests.

Pratique en classe et entretiens

Les étudiants collent des fréquences de symboles positives et vérifient longueurs Huffman optimales, bits totaux et longueur moyenne face aux arbres dessinés à la main.

Contrôles de conception de compression

Les ingénieurs comparent la longueur moyenne de Huffman à l'entropie de Shannon sur des histogrammes empiriques avant de choisir des tables statiques ou des codes fixes.

Comment calculer les longueurs de code Huffman à partir des fréquences ?

Envoyez un tableau non vide de fréquences strictement positives.

Quelle longueur reçoit un symbole unique ?

Longueur zéro. Un alphabet à un symbole n'a besoin d'aucun bit sous un code préfixe à redondance minimale ; le code vide est valide et optimal.

Les fréquences nulles sont-elles autorisées ?

Omettez les symboles inutilisés ou n'envoyez que des comptes strictement positifs.

L'outil renvoie-t-il les chaînes de bits 0/1 réelles ?

Non. Il renvoie les longueurs optimales et des agrégats (bits totaux, longueur moyenne, entropie, somme de Kraft). Vous pouvez attribuer tout étiquetage gauche/droite respectant ces profondeurs.

Pourquoi la longueur moyenne dépasse-t-elle l'entropie ?

L'entropie de Shannon est une borne inférieure de la longueur moyenne de tout code décodable sans ambiguïté. La redondance vaut la longueur moyenne moins l'entropie : elle n'est donc jamais négative, et une petite valeur indique un code proche de l'optimum.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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 est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Le chemin gratuit du navigateur et l'API prépayée partagent un même module analytique pur, afin que les oracles de devoirs et les pipelines de production ne divergent jamais sur les longueurs. Une validation échouée lève invalid_input et n'est pas facturée.

Ce que signifient les longueurs Huffman optimales et comment l'arbre est construit

Parmi tous les codes préfixes binaires, un code de Huffman minimise la longueur de chemin pondérée Σ frequency_i fois length_i pour un vecteur de fréquences positives donné. Le total_bits renvoyé égale la somme de fréquence fois longueur et est le coût exact en bits d'encoder un multiensemble dont les comptes correspondent aux fréquences. La longueur moyenne est total_bits divisé par la fréquence totale ; l'entropie de Shannon en bits est une borne inférieure de la longueur moyenne pour tout code uniquement décodable, donc redundancy_bits égale la longueur moyenne moins l'entropie et reste toujours non négatif dans la précision flottante.

Contrat d'entrée, champs de réponse, alias et comportement d'erreur

Associez les longueurs à votre propre affectation de chaînes de bits si vous avez besoin de codes 0/1 explicites ; ce point de terminaison ne renvoie que les longueurs et les agrégats, pas un étiquetage particulier gauche-zéro versus droite-zéro des branches. Envoyez un corps JSON avec frequencies comme un tableau non vide de nombres finis strictement positifs ; les alias freqs, weights, counts et freq sont acceptés, et une chaîne séparée par des virgules ou des espaces convient aux formulaires texte simples. Des labels optionnels (alias symbols, names, alphabet) peuvent fournir un tableau parallèle de chaînes non vides de même longueur pour des lignes lisibles. Les fréquences nulles, négatives, manquantes, vides ou non finies échouent avec invalid_input en nommant l'index fautif. Plus de quatre mille quatre-vingt-seize symboles sont rejetés pour garder rapides les chemins Worker et navigateur. En succès le corps inclut symbol_count ; le tableau frequencies nettoyé ; lengths dans le même ordre ; total_frequency ; total_bits ; average_length ; min_length et max_length ; shannon_entropy_bits ; redundancy_bits ; kraft_sum ; method égal à huffman_optimal_lengths ; formula résumant la règle de profondeur ; labels optionnels s'ils sont fournis ; et symbol_rows avec index, frequency, length, bits et label optionnel par symbole. Les fréquences classiques de manuel cinq, neuf, douze, treize, seize et quarante-cinq donnent total_bits deux cent vingt-quatre et une longueur moyenne de 2.24 bits par symbole sous cet ordre de combinaison déterministe.

Où une API de longueurs Huffman est utile, tarification et limites

Comme l'implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.

Oracles CI pour tests de codecs

Les pipelines figent des tableaux déterministes de total_bits et lengths pour qu'un changement d'histogramme ou d'alphabet fasse échouer les tests immédiatement.

Combien coûte le calculateur de longueurs de code Huffman ?

L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.

Consulter la documentation complète du KIT →