作者future1234 (Low)
看板TransCSI
标题Re: [问题] 数值表示范围、unsigned int表示范围、 …
时间Tue Oct 14 23:26:11 2008
: 3.Huffman Code到底要怎麽编码呢? 之前补习的时候老师教的是
: Step1:找出每个符号出现的机率.
: Step2:合并出现机率最低的两个符号,将出现机率相加,重复此Step
: 直到合并出最後一个符号(root)为止
: Step3:依据合并的关系,将合并出来的符号以1个bit表示.即是说一个符号用0表示
: 一个符号用1表示.
: 可是依照老师教的这个方式写的话..有的时候写出来的答案又跟解答不一样.
: 或是可能会画出两种不一样的图案两种不一样的编码...搞的我都不知道哪一个解法
: 是正确的. 有没有板上的前辈可以教教我>"<
我拿我之前解过题目来说:
出现频率
A: 12
B: 8
C: 9
D: 20
E: 31
F: 14
G: 8
{12,8,9,20,31,14,8} 拿来建Binary Tree , 树不一定唯一 , 以下就是建好其中一棵
其中"/"为0 ,"\"为1
102
/ \
49 53
/ \ / \
20 29 31 22
/ \ / \ E / \
12 8 9 20 14 8
A B C D F G
编码解果如下:
A 000
B 001
C 010
D 011
E 10
F 110
G 111
总bits= 12x3 + 8x3 + 9x3 + 20x3 + 31x2 + 14x3 + 8x3 = ...
所以你建另一棵B.T tree , 在算他们的总bits , 会发现都一样
我想考试重点应该是看你的总bits是否相同 , 那代表有透过Huffman code的方法做正常的编码
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.162.51
1F:推 zptdaniel:future大..我就是这一题写出两种不一样的答案||| 10/14 23:30
2F:→ future1234:所以你找的出第二棵 总bits不同的树? 10/14 23:32
3F:→ future1234:这篇是错的 请按频率大小顺序建树 10/15 21:11