Сжатие «вручную» 2-х фрагментов данных

C применением кодов Хаффмана

11) gdadafghggfghababahbagggabcdcdcahhggaghhhgacagca

Рассчитаем частоты появления символов алфавита:

g = 13/48 = 0,271

d = 4/48 = 0,083

a = 12/48 = 0,25

f = 2/48 = 0,042

h = 8/48 = 0,167

b = 4/48 = 0,083

c = 5/48 = 0,104

Сформируем дерево:

Код Хаффмана символов алфавита:

X Code
g  
a  
h  
c  
b  
d  
f  

Предположим, что входной поток был байт ориентированным, тогда

Kсж = 8/ (0,271∙1 + 0,250∙2 + 0,167∙3 + 0,104∙4 + 0,083∙5 + 0,083∙6 + 0,042∙6) = 8/ 2,853 = 2,804.

Сжатие считается эффективным.

10) faaadddddbbbccbaffbbbaabbabbbabbfcadcbfababadddab

Рассчитаем частоты появления символов алфавита:

a = 13/49 = 0,265

b = 18/49 = 0,367

c = 4/49 = 0,082

d = 9/49 = 0,184

f = 5/49 = 0,102

Сформируем дерево:

Код Хаффмана символов алфавита:

X Code
b  
a  
d  
f  
c  

Предположим, что входной поток был байт ориентированным, тогда

Kсж = 8/ (0,367∙1 + 0,265∙2 + 0,184∙3 + 0,102∙4 + 0,082∙4) = 8/ 2,185 = 3,661.

Сжатие считается эффективным.

Сжатие «вручную» фрагмента данных с применением


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: