kod Huffmana
-
- Użytkownik
- Posty: 114
- Rejestracja: 29 paź 2007, o 19:00
- Płeć: Mężczyzna
- Lokalizacja: Rybnik
- Podziękował: 50 razy
kod Huffmana
Dla alfabetu {a, b, c, d, e} znajdź kod Huffmana przy założeniu następującego rozkładu prawdopodobieostwa występowania poszczególnych liter w kodowanym ciągu: {0.3, 0.25, 0.2, 0.15, 0.1}
-
- Użytkownik
- Posty: 1874
- Rejestracja: 4 paź 2008, o 02:13
- Płeć: Kobieta
- Lokalizacja: Lost Hope
- Podziękował: 28 razy
- Pomógł: 502 razy
kod Huffmana
Nie, tutaj jednobitowe kodowanie a wymusi przynajmniej 2 dodatkowe bity w kodowaniu pozostałych znaków.
Na przykład gdy zwiększymy częstość a do 0,39, a pozostałe znaki pozostawimy w takich proporcjach, w jakich były, wówczas jednobitowe a zacznie się opłacać:
a = 0
b= 10
c = 110
d = 1111
e = 1110
Jeszcze raz może policzę krok po kroku:
\(\displaystyle{ (e+d)=0,25}\)
\(\displaystyle{ (c+(e+d))=0,45}\)
\(\displaystyle{ (b+a)=0,55}\)
\(\displaystyle{ ((c+(e+d))+(b+a))=1}\).
Można inaczej:
\(\displaystyle{ (e+d)=0,25}\)
\(\displaystyle{ (c+b)=0,45}\)
\(\displaystyle{ (a+(e+d))=0.55}\)
\(\displaystyle{ ((a+(e+d))+(c+b))}\)
czyli np.:
a=00
b=11
c=10
d=011
e=010
Na przykład gdy zwiększymy częstość a do 0,39, a pozostałe znaki pozostawimy w takich proporcjach, w jakich były, wówczas jednobitowe a zacznie się opłacać:
a = 0
b= 10
c = 110
d = 1111
e = 1110
Jeszcze raz może policzę krok po kroku:
\(\displaystyle{ (e+d)=0,25}\)
\(\displaystyle{ (c+(e+d))=0,45}\)
\(\displaystyle{ (b+a)=0,55}\)
\(\displaystyle{ ((c+(e+d))+(b+a))=1}\).
Można inaczej:
\(\displaystyle{ (e+d)=0,25}\)
\(\displaystyle{ (c+b)=0,45}\)
\(\displaystyle{ (a+(e+d))=0.55}\)
\(\displaystyle{ ((a+(e+d))+(c+b))}\)
czyli np.:
a=00
b=11
c=10
d=011
e=010