Codage de Huffman deux caractères comme une
-
04-10-2019 - |
Question
Je besoin d'un code de Huffman (meilleur en python ou en java), ce qui pourrait encoder du texte non par un caractère (a = 10, b = 11)
, mais par deux (ab = 11, ag = 10)
. Est-il possible et si oui, où pourrais-je trouver, peut-être de quelque part dans l'Internet et je viens can'd trouver?
La solution
Il y a un exemple de codeur de Huffman distribué avec le Python BitArray module, si c'est toute utilisation pour vous.
Autres conseils
code de Huffman ne se soucie pas des personnages, il se soucie de symboles. En règle générale, il est utilisé pour coder l'alphabet / autres caractères simples, mais peut très facilement être généralisé à des chaînes de caractères d'encodage. En gros, vous simplement prendre une implémentation existante et permettre à des symboles à des chaînes plutôt que des caractères. Un nœud de feuille correspondrait alors à une liste de chaînes.
Il y a probablement quelque part de code. Mais cela sonne comme une question et l'analyse syntaxique tokenising. L'une des premières questions que je répondrai comment traitez-vous avec beaucoup de paires uniques. le codage de Huffman fonctionne mieux avec un petit nombre de jetons. Par exemple, les 101 caractères sur votre clavier. Mais si vos deux personnages peuvent être quelque chose, vous élargissons maintenant le nombre maximum de caractères massivement.