哈夫曼编码每个字符的固定位长度

发布于 2024-12-13 19:22:18 字数 225 浏览 4 评论 0原文

如何使用霍夫曼确定字符串中固定长度代码每个字符需要多少位?我有一个想法,你计算字符串中不同字符的数量,而不是用二进制表示该数字,这样这将是固定长度,但它不起作用。例如,在字符串“letty lotto likes much of lolly”中...除了引号之外还有 10 个不同的字符(因为 10 = 0101(4 位),我认为这意味着所有字符都可以使用 4 位来表示),现在f 的频率为 1,编码为 11111(5 位)而不是 4。

How do you determine how many bits per character are required for a fixed length code in a string using huffman? i had an idea that you count the number of different characters in a string than you present that number in binary so that will be the fixed length but it doesn't work. For example in the string "letty lotto likes lots of lolly"...there are 10 different characters excluding the quotes(since 10 = 0101(4bits), i thought it meant all the characters can be represented using 4 bits), now the frequency of f is 1 and is encoded as 11111(5 bits)not 4.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

会傲 2024-12-20 19:22:18

假设您有一个包含 50 个“A”、35 个“B”和 15 个“C”的字符串。

使用固定长度编码,您可以使用 2 位来表示该字符串中的每个字符。总共有 100 个字符,因此使用此方法时,压缩后的字符串将是 200 位长。

或者,您可以使用可变长度编码方案。如果允许字符具有可变的位数,则可以用 1 位(“0”)表示“A”,用 2 位(“10”)表示“B”,用 2 位(“11”)表示“C” )。使用此方法,压缩后的字符串长度为 150 位,因为字符串中最常见的信息需要更少的位来表示。

霍夫曼编码特指一种利用每个字符出现的次数来构建可变长度编码方案的方法。

您描述的固定长度算法完全独立于霍夫曼编码。如果您的目标是使用固定长度的代码来压缩文本,那么计算出表示每个字符的位数的方法就可以了。

Let's say you have a string with 50 "A"s, 35 "B"s and 15 "C"s.

With a fixed-length encoding, you could represent each character in that string using 2 bits. There are 100 total characters, so when using this method, the compressed string would be 200 bits long.

Alternatively, you could use a variable-length encoding scheme. If you allow the characters to have a variable number of bits, you could represent "A" with 1 bit ("0"), "B" with 2 bits ("10") and "C" with 2 bits ("11"). With this method, the compressed string is 150 bits long, because the most common pieces of information in the string take fewer bits to represent.

Huffman coding specifically refers to a method of building a variable-length encoding scheme, using the number of occurrences of each character to do so.

The fixed-length algorithm you're describing is entirely separate from Huffman coding. If your goal is to compress text using a fixed-length code, then your method of figuring out how many bits to represent each character with will work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文