kod Huffmana

Awatar użytkownika
pool
Użytkownik
Użytkownik
Posty: 185
Rejestracja: 11 lis 2007, o 11:41
Płeć: Mężczyzna
Lokalizacja: z google :]
Podziękował: 78 razy

kod Huffmana

Post autor: pool »

Mam takie zadanie:
Opracować kod Huffmana dla alfabetu, w którym prawdopodobieństwo wystąpienia poszczególnych znaków \(\displaystyle{ X1, X2,...,Xn}\) przedstawiono poniższym szeregiem.

\(\displaystyle{ \frac{1}{2}}\) \(\displaystyle{ \frac{1}{11}}\)\(\displaystyle{ \frac{1}{14}}\)\(\displaystyle{ \frac{1}{17}}\)\(\displaystyle{ \frac{1}{20}}\)\(\displaystyle{ ...}\)

Liczba elementów szeregu(tj. liczba znaków n w alfabecie) powinna być wybrana w ten sposób, żeby suma prawdopodobieństw wszystkich n znaków była równa 1 z dokładnością \(\displaystyle{ \pm 0,02}\). Obliczenia prowadzić z dokładnością 3-4 cyfr po przecinku.

Jak się za to zabrać?
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

kod Huffmana

Post autor: spajder »

Najpierw musisz policzyć, ile będzie znaków, tzn. tak długo dodajesz do siebie wyrazy szeregu, aż dostaniesz 1 (z potrzebną dokładnością).
Jak już będziesz miał to prosto, bo będziesz miał posortowaną listę symboli - wtedy po prostu budujesz odpowiednie drzewo binarne (albo trójkowe, bo też można, ale to trochę bardziej skomplikowane).
ODPOWIEDZ