Teoria informacji/TI Ćwiczenia 1: Różnice pomiędzy wersjami
m Zastępowanie tekstu – „ </math>” na „</math>” |
m Zastępowanie tekstu – „<math> ” na „<math>” |
||
Linia 43: | Linia 43: | ||
Wygodnym podejściem do problemu jest zbudowanie odpowiedniej struktury danych. Może być nią graf, | Wygodnym podejściem do problemu jest zbudowanie odpowiedniej struktury danych. Może być nią graf, | ||
którego wierzchołkami są sufiksy słow ze zbioru ''X'', a krawędź prowadzi z ''x'' do ''z'', jeśli | którego wierzchołkami są sufiksy słow ze zbioru ''X'', a krawędź prowadzi z ''x'' do ''z'', jeśli | ||
istnieje <math> y \in X</math>, takie że <math> y = x z</math>. W zbiorze wierzchołków wyróżniamy | istnieje <math>y \in X</math>, takie że <math>y = x z</math>. W zbiorze wierzchołków wyróżniamy | ||
podzbiór <math> U = \{ z : (\exists x, y \in X) \, y = x z \}</math>. Zbiór ''X'' nie jest | podzbiór <math>U = \{ z : (\exists x, y \in X) \, y = x z \}</math>. Zbiór ''X'' nie jest | ||
kodem wtedy i tylko wtedy, gdy istnieje słowo posiadające faktoryzacje startujące z dwóch różnych słów | kodem wtedy i tylko wtedy, gdy istnieje słowo posiadające faktoryzacje startujące z dwóch różnych słów | ||
<math> x, y \in X</math>. Łatwo sptawdzić, że jest to równoważne istnieniu w opisanym grafie ścieżki z pewnego wierzchołka <math> z \in U</math> do wierzchołka <math> \varepsilon</math>. | <math>x, y \in X</math>. Łatwo sptawdzić, że jest to równoważne istnieniu w opisanym grafie ścieżki z pewnego wierzchołka <math>z \in U</math> do wierzchołka <math>\varepsilon</math>. | ||
</div> | </div> | ||
</div> | </div> | ||
Linia 58: | Linia 58: | ||
//Dla danego zbioru X określamy czy jest on kodem | //Dla danego zbioru X określamy czy jest on kodem | ||
'''var''' x,y : word; | '''var''' x,y : word; | ||
<math> U, \Delta , \, \Delta 1</math> : set of words; | <math>U, \Delta , \, \Delta 1</math> : set of words; | ||
'''begin''' | '''begin''' | ||
<math>U:=\emptyset</math>; | <math>U:=\emptyset</math>; | ||
Linia 64: | Linia 64: | ||
'''forall''' x '''in''' X '''do''' | '''forall''' x '''in''' X '''do''' | ||
'''forall''' y '''in''' X '''do''' | '''forall''' y '''in''' X '''do''' | ||
'''if''' x < y '''then''' <math> \Delta := \Delta \cup \{x^{-1}y\}</math>; | '''if''' x < y '''then''' <math>\Delta := \Delta \cup \{x^{-1}y\}</math>; | ||
'''while''' <math>( \Delta \neq \emptyset \, \wedge \, \varepsilon \not\in \Delta )</math> '''do''' | '''while''' <math>( \Delta \neq \emptyset \, \wedge \, \varepsilon \not\in \Delta )</math> '''do''' | ||
'''begin''' | '''begin''' | ||
<math>U := U \cup \Delta</math>; | <math>U := U \cup \Delta</math>; | ||
<math>\Delta 1</math> := <math> \emptyset</math>; | <math>\Delta 1</math> := <math>\emptyset</math>; | ||
'''forall''' x '''in''' <math>\Delta</math> '''do''' | '''forall''' x '''in''' <math>\Delta</math> '''do''' | ||
'''forall''' y '''in''' X '''do''' | '''forall''' y '''in''' X '''do''' |
Aktualna wersja na dzień 22:17, 11 wrz 2023
Ćwiczenia
Ćwiczenie 1 [Definicja kodu]
Mamy dane zbiory:
- {0,01,11}
- {0,11,10}
- {00,01,10}
- {00,001,100}
- {1,010,110,001,000,101}
Określ:
- Które z nich są kodami?
- Które są bezprefiskowe?
- Które są maksymalne bezprefiksowe?
Rozwiązanie
Ćwiczenie 2 [Rozpoznawanie kodów]
Wskazówka 1
Wskazówka 2
Rozwiązanie
Ćwiczenie 3 [Nieskończone kody]
Definicja kodu nie zakłada, że zawiera on skończenie wiele słów. Przykładem nieskończonego kodu jest zbiór .
Udowodnij, że każdy nieskończony kod również spełnia nierówność Krafta.Rozwiązanie
Ćwiczenie 4 [Maksymalne kody]
Wskazówka
Rozwiązanie
Zadania domowe
Zadanie 1 - Kody wyczerpujące alfabet
Mówimy że kod wyczerpuje alfabet, jeśli dowolny wystarczająco długi ciąg liter alfabetu zawsze rozpoczyna się od słowa kodowego (innymi słowy dowolny nieskończony ciąg liter da się rozłożyć na słowa kodowe). Pokaż, że dla dowolnego skończonego kodu dowolne dwa z poniższych warunków implikują trzeci:
- jest bezprefiksowy
- wyczerpuje alfabet
Pokaż, że żaden z tych warunków nie implikuje pozostałych dwóch. Czy założenie o skończoności kodu jest konieczne?
Zadanie 2 - Ważenie monet
Załóżmy, że mamy monet, z których jedna jest fałszywa i różni się ciężarem od pozostałych (może być lżejsza lub cięższa). Naszym zadaniem jest znalezienie fałszywej monety i określenie czy jest cięższa, czy lżejsza. Do dyspozycji mamy jedynie wagę szalkową, na szalki której możemy kłaść monety. Waga wskazuje zawsze jedną z trzech możliwości: lewa szalka cięższa, prawa szalka cięższa lub równowaga.
- Jakie jest górne ograniczenie na liczbę monet , przy których może się nam to udać przy użyciu ważeń?
- Opracuj strategię pozwalającą rozwiązać zadanie dla trzech ważeń i dwunastu monet.
Wskazówka