File tree Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Original file line number Diff line number Diff line change @@ -2367,7 +2367,7 @@ \subsubsection{哈夫曼编码} \index{哈夫曼编码}
2367236710101100111000101110100101000011101111
23682368\end {Verbatim}
23692369
2370- 按上表解码不会遇到有歧义的字符。这是因为没有任何编码是其它编码的前缀。这样的编码称为\textbf{前缀码}\footnote{英文叫做prefix-code,而不是无前缀码.}。前缀码不需要分隔符,编码长度可进一步缩短。这自然引发了一个问题:给定文本,能否找到码表使得编码长度最短?1951年,麻省理工学院的学生大卫 $\cdot$哈夫曼\cite{Huffman}的老师罗伯特$\cdot$费诺在课上宣布:谁解出了这个问题就不用参加期末考试了。哈夫曼尝试了很久。 他几乎放弃了,开始准备考试。恰在此时,他灵光乍现找到了解法。哈夫曼根据文本中字符出现的频率构造码表。最“常见”的字符编码最短。首先处理文本获得每个字符出现的次数。定义字符的权重是它出现的次数或概率。哈夫曼用二叉树产生前缀码。字符保存于叶子节点。从根节点遍历产生编码。向左前进时添加0,向右前进时添加1,如\cref{fig:huffman-tr}。例如,从根节点遍历到N的路径是,向左然后向右到达N。因此N编码为01;字符A的路径是:右、右,左,编码是110。
2370+ 按上表解码不会遇到有歧义的字符。这是因为没有任何编码是其它编码的前缀。这样的编码称为\textbf{前缀码}\footnote{英文叫做prefix-code,而不是无前缀码.}。前缀码不需要分隔符,编码长度可进一步缩短。这自然引发了一个问题:给定文本,能否找到码表使得编码长度最短?1951年,麻省理工学院的老师罗伯特 $\cdot$费诺在课上宣布:谁解出了这个问题就不用参加期末考试了。 哈夫曼\cite{Huffman}尝试了很久, 他几乎放弃了,开始准备考试。恰在此时,他灵光乍现找到了解法。哈夫曼根据文本中字符出现的频率构造码表。最“常见”的字符编码最短。首先处理文本获得每个字符出现的次数。定义字符的权重是它出现的次数或概率。哈夫曼用二叉树产生前缀码。字符保存于叶子节点。从根节点遍历产生编码。向左前进时添加0,向右前进时添加1,如\cref{fig:huffman-tr}。例如,从根节点遍历到N的路径是,向左然后向右到达N。因此N编码为01;字符A的路径是:右、右,左,编码是110。
23712371
23722372\begin {figure}[htbp]
23732373 \centering
You can’t perform that action at this time.
0 commit comments