1. Twierdzenie Shannon’a — dokładniej
H≤L
Dokładniej:
X={x1,…,xN} p1,p2,…,pN
H(X)=−∑i=1Npilog2pi
kod to jest funkcja c:X→{0,1}∗
c jest iniekcją
wiemy, że c jest prefiksowy, tzn ∀ x,x′ x=x′⟹c(x) nie jest prefiksem c(x′)
1.1. L
L=L(c)=∑i=1Npili∣c(xi)∣=∑i=1Npili
1.2. Uwaga
- są też kody sufiksowe
- kody jednoznacznie dekodowalne:
- dla dowolnego ciągu {0,1}∗ istnieje co najwyżej jeden podział σ=σ1⌢σ2⌢⋯⌢σk, taki by ∀iσirng(c)
1.3. Uwaga
Kody prefiksowe (i też sufiksowe) są jednoznacznie dekodowalne
1.3.1. Ćwiczenie
Znajdź jednoznacznie dekodowalny kod, który nie jest ani sufiksowy ani prefiksowy.
1.3.2. Ćwiczenie
Kiedy co najwyżej można zamienić na dokładnie?
1.3.2.1. Przykład
{x1,x2}c(x1)=0c(x2)=11
σ=111 nie da się podzielić na słowo kodowe
c^(x1)=0c^(x2)=1 i wtedy O.K.
1.3.2.2. Przykład
Jeśli istnieje l takie, że ∀ili=l, to c jest jednoznaczne dekodowalny (prefiksowy).