1 Kodowanie i dekodowanie



Podobne dokumenty
WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Metodydowodzenia twierdzeń

Metody dowodzenia twierdze«

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

O pewnym zadaniu olimpijskim

Przekroje Dedekinda 1

Semestr letni 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Metody iteracyjne rozwi zywania równania f(x)=0

x y x y x y x + y x y

XVII Warmi«sko-Mazurskie Zawody Matematyczne

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lekcja 9 Liczby losowe, zmienne, staªe

Informatyka, matematyka i sztuczki magiczne

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

1 Bª dy i arytmetyka zmiennopozycyjna

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zbiory i odwzorowania

Logika dla matematyków i informatyków Wykªad 1

Ukªady równa«liniowych

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Kompresja bezstratna. Entropia. Kod Huffmana

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Funkcje, wielomiany. Informacje pomocnicze

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Teoria grafów i jej zastosowania. 1 / 126

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Techniki multimedialne

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ZADANIA. Maciej Zakarczemny

Matematyka dyskretna dla informatyków

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Podstawy matematyki dla informatyków

1. Podstawy budowania wyra e regularnych (Regex)

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Lekcja 6 Programowanie - Zaawansowane

0 + 0 = 0, = 1, = 1, = 0.

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Zastosowania matematyki

Semestr letni 2014/15

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Elementy geometrii w przestrzeni R 3

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Krótka wycieczka do wnętrza komputera

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Lekcja 3 Banki i nowe przedmioty

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

2 Podstawowe obiekty kombinatoryczne

Temat: Algorytm kompresji plików metodą Huffmana

Lekcja 5 Programowanie - Nowicjusz

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Materiaªy do Repetytorium z matematyki

Macierze i Wyznaczniki

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Ekonometria - wykªad 8

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

Matematyka dyskretna dla informatyków

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Arytmetyka komputera

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

1.1. Pozycyjne systemy liczbowe

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Nierówność Krafta-McMillana, Kodowanie Huffmana

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Pracownia Komputerowa wyk ad VII

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

DZIESIĘTNY SYSTEM LICZBOWY

Transkrypt:

1 Kodowanie i dekodowanie Teoria informacji zajmuje si sposobami gromadzenia, przechowywania oraz przesyªania informacji. W tym celu, a tak»e dla ochrony danych informacje kodujemy. Rozmowa telefoniczna, czy SMS s takimi informacjami. Historia pokazuje,»e przesªanie informacji nie jest ªatwym zadaniem. Do czasu wynalezienia telegrafu przez W. Siemensa w 1847, jedynym sposobem byªy znaki wizualne, ewentualnie akustyczne (generalnie, widzimy znaki z dalszej odlegªo±ci ni» sªyszymy). Spo±ród kodów wizualnych, najbardziej znanym jest przedstawiony ni»ej kod Morse'a, który zostaª zaadoptowany do przesy- ªania wiadomo±ci przez telegraf. A H N U B I O V C J P W D K Q X E L R Y F M S Z G T 1.1 Kod Morse'a Przyjrzyjmy sie bli»ej kodowi Morse'a. Alfabet kodowy skªada si tu z trzech znaków: kropki, kreski i przerwy. Ostatni znak, cho niewidoczny, speªnia istotn rol w rozumieniu wiadomo±ci. Np. Kod litery R to. Ten sam kod ma dwuznak AE, je±li pomin przerw. Przerwa umieszczona jest zawsze na ko«cu kodu litery. Dzi ki temu kody R oraz AE wygl daj nast puj co: i. Zwró my jeszcze uwag na to,»e litery, które wyst puj najcz ±ciej maj najkrótsze kody. W rezultacie, przekaz trwa na tyle krótko, by nie blokowa linii, a jednocze±nie na tyle dªugo by by zrozumiaªym. 1.2 Idea kodowania Kolejnym krokiem milowym w rozwoju teorii kodowania byªo wynalezienie telefonu przez G. Bella w 1876 roku. Idea kodowania gªosu na impulsy elektromagnetyczne, a nast pnie rozkodowywania impulsów i generowania gªosu nie zmieniªa si do dzi±. Zmieniª si jednak sposób przesyªania kodu. Daªo to du»e pole dla rozwoju teorii kodowania. Kodowanie obecnie jest stosowane tak»e przy przesyªaniu sygnaªu multimedialnego: telewizja, radio, internet. Nie chodzi tu tylko o rozrywk, ale 1

tak»e o wiele dziedzin»ycia, gdzie wykorzystywane s fale elektromagnetyczne. Teoria kodowania zajmuje si wªa±nie sposobami zakodowania lub zaszyfrowania informacji. Aby zakodowa dan wiadomo± stosujemy pewnego rodzaju alfabet kodowy. Najcz ±ciej jest to zbiór dwuelementowy {0, 1}, czyli danej literze alfabetu przypisujemy pewien ci g zer i jedynek. Sªowa tworzymy poprzez poª czenie kodów liter wyst puj cych w tym sªowie. Chcemy, generalnie, dwóch rzeczy: 1) Aby zakodowana wiadomo± byªa jak najkrótsza, wi c aby informacja byªa jak najbardziej skompresowana; 2) Aby zakodowana wiadomo± byªa zabezpieczona przed znieksztaªceniami jakie mog powsta przy jej przesyªaniu. Zauwa»my,»e punkty 1) oraz 2) przecz sobie im krótszy jest kod tym ªatwiej jest uczyni go nierozszyfrowywalnym poprzez znieksztaªcenie paru znaków. Powstaje zatem problem pogodzenia powy»szych dwóch»ycze«. Na pocz tek zaªo»ymy,»e kody nie ulegaj znieksztaªceniu, wi c ª cze, po którym przesyªamy wiadomo± nie jest podatne na szumy. Przy tym zaªo»eniu spróbujemy maksymalnie skompresowa informacje. Nast pnie otrzymany skompresowany kod uczynimy odpornym na szumy poprzez dodanie do niego kilku znaków. 1.3 Kod 2-z-5 Rozwa»my poni»szy kod: 0 00011 1 11000 2 10100 3 01100 4 10010 5 01010 6 00110 7 10001 8 01001 9 00101 W ka»dym sªowie powy»szego kodu wyst puj dokªadnie dwie jedynki. Okazuje si,»e jest dokªadnie 10 mo»liwo±ci umieszczenia dwóch jedynek w bloku pi ciu znaków. Wyraz 173 kodujemy jako 110001000101100. Nie u»ywamy spacji, poniewa» mo»e ona by traktowana jako litera. Zakodowan powy»ej wiadomo± 110001000101100 mo»emy rozkodowa bior c zawsze blok pi ciu znaków i odczytuj c z tabelki co on oznacza. Innym sposobem rozkodowania jest u»ycie klucza 01247 jako wag odpowiedniego 2

symbolu w kodzie. Mno»ymy odpowiednie znaki sªowa kodowego przez cyfry klucza i dodajemy. Dokªadnie, 110001000101100 rozszyfrowujemy jako 1 0 + 1 1 + 0 2 + 0 4 + 0 7 = 1 1 0 + 0 1 + 0 2 + 0 4 + 1 7 = 7 0 0 + 1 1 + 1 2 + 0 4 + 0 7 = 3. Wyj tkiem jest tu liczba 0, która rozkodowuje si w ten sposób jako 11 (zamiast 0). W dalszej cz ±ci wykªadu, b dziemy u»ywa sªowa bit jako okre±lenie dla zera lub jedynki. 1.4 Podstawowe poj cia Dowolny sko«czony zbiór nazywamy alfabetem, jego elementy literami lub symbolami, a sko«czone lub niesko«czone ci gi zªo»one z liter nazywamy wyrazami, sªowami lub wiadomo±ciami. Niech A oraz B oznaczaj dwa sko«czone zbiory. Oznaczmy przez w(b) zbiór wszystkich sko«czonych sªów zapisanych za pomoc alfabetu B. Dowolna funkcja f : A w(b) nazywa si kodowaniem. Jej obraz nazywamy kodem. Liczb liter w sªowie f(x) nazywamy dªugo±ci kodu dla litery x. Alfabet A nazywamy alfabetem ¹ródªowym, natomiast alfabet B nazywamy alfabetem kodowym. Je±li alfabet kodowy ma dokªadnie dwa elementy, to kodowanie nazywamy binarnym, dwójkowym lub zerojedynkowym. 1.5 Kod RGB Przez odpowiednie nasycenie trzech kolorów: czerwonego (R), zielonego (G) oraz niebieskiego (B) otrzymujemy palet 16 777 216 barw. Nasycenie mierzymy w skali od 0 (brak koloru) do 255. U»ywamy przy tym znaków 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Daje to mo»liwo± zapisania ka»dej liczby od 0 do 255 jako dwuznaku: 00 oznacza 0. FF oznacza 255, a 3D oznacza 3 16 + 13, czyli 61. 000000 to kod koloru czarnego (brak nasycenia), FFFFFF to kod koloru biaªego. FFFF00 oznacza kolor»óªty. 3

1.6 Dekodowanie jednoznaczne Dla alfabetów ¹ródªowego A oraz kodowego B, niech K : A w(b) b dzie kodowaniem. Kodowaniem wiadomo±ci ¹ródªowej nazywamy funkcj okre±lon wzorem K : w(a) w(b) K (a 1 a 2... a n ) = K(a 1 )K(a 2 )... K(a n ). Kodowanie K nazywamy jednoznacznie dekodowalnym, je±li funkcja K jest ró»nowarto±ciowa. Poni»szy kod nie jest jednoznacznie dekodowalny. 10110 mo»e tu by rozkodowane jako cb lub te» jako bd. a b c d e 00 10 101 110 1001 Zauwa»my,»e funkcja K jest ró»nowarto±ciowa, a K ju» nie. 1.7 Kody blokowe i natychmiastowe Kodowanie, którego kod skªada si z parami ró»nych wyrazów o jednakowej dªugo±ci n nazywamy kodem blokowym dªugo±ci n. Kodowanie nazywamy natychmiastowym, je»eli»adne sªowo kodowe nie jest pocz tkiem innego sªowa kodowego, tj. je±li element alfabetu ¹ródªowego ma kod b 1 b 2... b n, to»aden inny element tego alfabetu nie ma kodu b 1 b 2... b n b n+1... b m. Kod 2z5 jest przykªadem kodu blokowego dªugo±ci 5. Kody blokowe s ªatwo dekodowalne, ale staj si za dªugie i nieªadne je±li symbole ¹ródªowe pojawiaj si w wiadomo±ci zbyt cz sto. Warto wówczas zastosowa kod natychmiastowy, w którym sªowa s ró»nej dªugo±ci. Gdyby alfabet dwudziestu sze±ciu liter zakodowa kodem blokowym trzyznakowym, to ka»dy blok miaªby trzy znaki. Kod stuliterowego tekstu miaªby zatem 300 znaków. Stuliterowy tekst zakodowany kodem Morse'a ma okoªo 140 znaków. Rozwa»my kod 0 0 2 011 1 01 3 111 Nigdy nie uda nam si rozkodowa zakodowanej wiadomo±ci je±li nie znamy caªego kodu. Dokªadnie, strumie«011111... mo»e by 033... lub 133... lub te» 233... Zatem kod ten nie jest natychmiastowy, pomimo tego,»e jest jednoznacznie dekodowalny. 4

1.8 Kod ASCII 128 symboli ¹ródªowych klawiatury komputera jest zakodowanych kodem ASCII (American Standard Code for Information Interchange). Jest to binarny kod blokowy dªugo±ci 8. Siedem pierwszych cyfr tego kodu nazywamy symbolami informacyjnymi, gdy» to one nios informacj jaki sygnaª z klawiatury zostaª nadany. Ostatni, ósmy bit jest bitem sprawdzaj cym parzysto±. jest on ustalony tak, aby ilo± jedynek w kodzie byªa parzysta. Np. 0010100 jest wa»nym sªowem kodowym w ASCII. Oznacza to liter a; 0100011 nie jest sªowem kodowym w ASCII. 1.9 Kod ISBN Ka»da ksi»ka ma swój kod ISBN (International Standard Book Number). Jest to kod blokowy dªugo±ci 10. Na przykªad ISBN-83-01-06891-4 oznacza,»e ksi»ka zostaªa wydana w kraju o kodzie 83 (Polska), wydawnictwie 01 (PWN) i jej numer w tym wydawnictwie to 06891. Ostatni symbol jest symbolem sprawdzaj cym wyznaczonym tak,»e 11 jest dzielnikiem 10 i=1 ia i, gdzie a i jest itym znakiem kodu. Alfabet kodowy ma tu 11 symboli i oprócz cyfr jest tam jeszcze symbol X. Dla podanego kodu powy»sza suma wynosi 209, co jest podzielne przez 11. Je»eli jedna cyfra kodu jest nieczytelna, to mo»na j odtworzy na podstawie pozostaªych cyfr. Krajowe Biuro ISBN poinformowaªo,»e z dniem 1 stycznia 2007 r. wchodzi w»ycie zaktualizowana mi dzynarodowa norma ISO 2108, zgodnie z któr numery ISBN zmienia si z 10-cyfrowych na 13-cyfrowe. Ksi»ki wydawane w 2006 r. byªy oznaczone numerami w dwóch formatach. Na ksi»kach wydanych po 1 stycznia 2007 roku mo»na drukowa tylko numery maj ce 13 cyfr. Znaczenie ostatnich 10 cyfr pozostaje bez zmian, natomiast dodano trzy cyfry 978 na pocz tku. Zmienia si te» zasada obliczania cyfry kontrolnej i znika symbol X. Wspomniany numer dziesi ciocyfrowy ma teraz posta ISBN-978-83-01-06891-0. Cyfra kontrolna jest wyznaczona tak,»e suma wszystkich cyfr kodu plus podwojona suma cyfr parzystych jest podzielna przez 10. W naszym wypadku mamy: 9 + 7 + 8 + 8 + 3 + 0 + 1 + 0 + 6 + 8 + 9 + 1 + 0 + 2 (7 + 8 + 0 + 0 + 8 + 1) = 110. Liczba 110 jest podzielna przez 10. Podobnie jak w przypadku kodu 10- cyfrowego, w tym przypadku te» mo»na odtworzy zatarty znak, je±li pozostaªe s czytelne. 5

1.10 Kod IBAN Numer konta w banku (IBAN: International Bank Account Number) jest te» kodem: PL21 1140 2004 0000 3702 3209 3385 PL oznacza tu polsk 1140 2004 jest numerem banku i oddziaªu. Pozostaªe cyfry oznaczaj numer klienta i s wyznaczane przez bank. Liczba 21 jest liczb kontroln. Oblicza si j w nast puj cy sposób: 1. Literom PL przypisujemy symbol liczbowy wedªug zasady miejsce w alfabecie+9. A ma symbol 10, B 11, itd. PL ma wi c numer 2521. 2. liczb 2521 umieszczamy na ko«cu numeru. 3. Odrzucamy dwie pierwsze cyfry numeru, na ko«cu dodajemy dwa zera i obliczamy reszt z dzielenia otrzymanej liczby przez 97. W naszym wypadku mamy 114020040000370232093385252100 mod 97 = 77. 4. Poprzedni wynik odejmujemy od 98. W przypadku, gdy jest to liczba jednocyfrowa, dodajemy z przodu zero. U nas jest to 21. Nie ma dwóch numerów kont, które ró»niªyby si tylko jedn lub dwiema cyframi. Je±li przez omyªk przy wykonywaniu przelewu pomylimy si o jedn lub dwie cyfry w numerze konta, to przelew zostanie odrzucony. 1.11 Konstruowanie kodów natychmiastowych Zajmiemy si teraz konstrukcjami dwójkowych kodów natychmiastowych. W tym celu ustalmy alfabet A = {a 1, a 2,..., a n }. Chcieliby±my,»eby kod miaª mo»liwie najkrótsze sªowa kodowe. B dziemy szukali te» zale»no±ci mi dzy dªugo±ciami sªów kodowych. Dla litery a i, dªugo± jej kodu oznaczmy przez d i. Zaªó»my,»e d 1 d 2 d n. Nasza konstrukcja przebiega nast puj co: 1) Za K(a 1 ) wybieramy jakiekolwiek sªowo dwójkowe dªugo±ci d 1. Jest to mo»liwe je±li d 1 1. Mamy wówczas mo»liwo± wyboru spo±ród 2 d 1 sªów. Dodatkowo zachodzi nierówno± 2 d 1 1 równowa»na nierówno±ci 1. 6

2) W±ród wszystkich sªów, które nie zaczynaj si od K(a 1 ), wybieramy sªowo K(a 2 ) dªugo±ci d 2. Zauwa»my,»e wybór jest mo»liwy poniewa» mamy 2 d 2 wszystkich sªów dªugo±ci d 2 i 2 d 2 d 1 sªów dªugo±ci d 2, których pocz tkiem jest K(a 1 ). Je±li wi c 2 d 2 > 2 d 2 d 1, to mamy przynajmniej jeden wybór na K(a 2 ). Nierówno± ta zachodzi, poniewa» d 1 > 0. Dodatkowo mamy jeszcze 1. 3) Podobnie jak w 2) spo±ród wszystkich sªów, które si nie zaczynaj od K(a 1 ) ani od K(a 2 ) wybieramy sªowo K(a 3 ) dªugo±ci d 3. Aby wybór byª mo»liwy musi by speªniona nierówno± 2 d 3 > 2 d 3 d 1 +2 d 3 d 2, która jest równowa»na nierówno±ci + 2 d 3 1. 4) Post pujemy jak w 3) wybieraj c kolejno K(a 4 ), K(a 5 ),..., K(a n ). Aby wybór sªowa K(a i ) byª mo»liwy musi zachodzi nierówno± + + 2 d i 1. Zatem aby mo»na byªo wybra sªowa K(a 1 ), K(a 2 ),..., K(a n ), ich dªugo±ci musz speªnia warunek + + 2 dn 1. 1.12 Twierdzenia Krafta i McMillana Otrzyman nierówno± nazywamy nierówno±ci Krafta dla kodu dwójkowego. Prawdziwe jest nast puj ce ogólniejsze twierdzenie, którego dowód jest podobny do powy»szej konstrukcji. Twierdzenie (Kraft'a) Zaªó»my,»e alfabet ¹ródªowy ma n symboli. Binarny kod natychmiastowy o sªowach kodowych dªugo±ci d 1, d 2,..., d n istnieje, je±li zachodzi nierówno± + + 2 dn 1. Je±li chcemy skonstruowa kod binarny dla alfabetu {Q, W, E, R, T, Y, U} o zadanych dªugo±ciach sªów kodowych, to dobrze jest sprawdzi, czy warto 7

próbowa. Np. je»eli dªugo±ci maj by, odpowiednio, 1, 2, 2, 3, 4, 5, 6, to nierówno± Krafta nie jest speªniona: 2 1 + 2 2 + 2 2 + 2 3 + 2 4 + 2 5 + 2 6 > 1. Oznacza to,»e nie ma kodu natychmiastowego o kodach podanej dªugo±ci. Co wi cej, nast pne twierdzenie mówi,»e nie ma te» kodu jednoznacznie dekodowalnego, bo i dla niego musi by speªniona nierówno± Krafta. Twierdzenie (McMillan'a) Nierówno± Krafta jest speªniona dla ka»dego kodu jednoznacznie dekodowalnego. Powy»sze twierdzenie mówi te»,»e ka»dy kod jednoznacznie dekodowalny mo»na zast pi kodem natychmiastowym, który ma sªowa kodowe takiej samej dªugo±ci co kod wyj±ciowy. 8