Teoria informacji/TI Ćwiczenia 1: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dorota (dyskusja | edycje)
Stromy (dyskusja | edycje)
popraka algortymu w cwiczeniu 2
Linia 49: Linia 49:
  '''begin'''
  '''begin'''
   U1:=<math>\emptyset</math>;
   U1:=<math>\emptyset</math>;
  U2:=<math>\emptyset</math>;
   '''forall''' x '''in''' X '''do'''
   '''forall''' x '''in''' X '''do'''
     '''forall''' y '''in''' X '''do'''
     '''forall''' y '''in''' X '''do'''
       '''if''' x < y '''then''' U1:=<math>U1 \cup \{x^{-1}y\}</math>;
       '''if''' x < y '''then''' U1:=<math>U1 \cup \{x^{-1}y\}</math>;
   U2:=U1;
    
   '''while''' U2=U1 '''do''' '''begin'''
   '''while''' U2 <math>\neq</math> U1 '''do''' '''begin'''
     U1=U2;
     U1=U2;
     '''forall''' x '''in''' U1 '''do'''
     '''forall''' x '''in''' U1 '''do'''

Wersja z 13:15, 5 paź 2006

Ć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

{{{3}}}


Ćwiczenie 2 [Rozpoznawanie kodów]

Czy istnieje algorytm, który dla dowolnego skończonego zbioru X nad alfabetem Σ stwierdza, czy X jest kodem?

Wskazowka

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 {0n1|n}.

Udowodnij, że każdy nieskończony kod również spełnia nierówność Krafta.

Rozwiązanie

{{{3}}}


Ćwiczenie 4 [Maksymalne kody]

Załóżmy, że X jest maksymalnym zbiorem bezprefiksowym nad alfabetem Σ (żaden jego nadzbiór nie jest bezprefiskowy). Czy w takim przypadku nierówność Krafta zamienia się w równość (tzn. sX1r(s)=1)?

Wskazowka

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 X dowolne dwa z poniższych warunków implikują trzeci:

  • X jest bezprefiksowy
  • X wyczerpuje alfabet
  • sX1r(s)=1

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 n3 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 n, przy których może się nam to udać przy użyciu k ważeń?
  • Opracuj strategię pozwalającą rozwiązać zadanie dla trzech ważeń i dwunastu monet.

Wskazówka

{{{3}}}