Skip to content

Commit 761f5dc

Browse files
committed
Proofread Huffman coding (CN)
1 parent a670e20 commit 761f5dc

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

search/search-zh-cn.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2367,7 +2367,7 @@ \subsubsection{哈夫曼编码} \index{哈夫曼编码}
23672367
10101100111000101110100101000011101111
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

0 commit comments

Comments
 (0)