Zaawansowane algorytmy i struktury danych/Ćwiczenia 1: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dorota (dyskusja | edycje)
Nie podano opisu zmian
m Zastępowanie tekstu - "\ =\" na "="
Linia 55: Linia 55:


Zastosuj algorytm BM do tekstów:
Zastosuj algorytm BM do tekstów:
<math>y\ =\ (ba^kba^k)^k</math>, gdzie usuwamy ostatni symbol oraz <math>x\ =\ ba^{k-1}ba^{k-1}</math>.
<math>y=  (ba^kba^k)^k</math>, gdzie usuwamy ostatni symbol oraz <math>x= ba^{k-1}ba^{k-1}</math>.


Dla tych danych liczba porównań symboli wynosi w przybliżeniu <math>3n</math>, gdzie <math>n=(2k+2)*k-1</math> jest długością <math>y</math>.</div>
Dla tych danych liczba porównań symboli wynosi w przybliżeniu <math>3n</math>, gdzie <math>n=(2k+2)*k-1</math> jest długością <math>y</math>.</div>
</div>
</div>

Wersja z 12:50, 9 cze 2020

Zadanie 1

Sprawdz w czasie liniowym, czy słowo x jest pierwotne.

Rozwiązanie

Zadanie 2

Pokaż redukcję w czasie liniowym problemu liczenia tablicy PREF do liczenia tablicy P

Rozwiązanie

Zadanie 3

Załóżmy, że wzorzec x jest ustalony, ma długość m, a tekst y, w którym szukamy x, jest losowym tekstem długości n, alfabet zaś jest binarny. Każdy symbol jest zerem lub jedynką niezależnie, z takim samym prawdopodobieństwem 1/2.

Skonstruuj algorytm, który będzie szukał wzorca x w czasie oczekiwanym (średnim) O(nmlogm)

Rozwiązanie

Zadanie 4

Udowdnij, że w modelu takim, jak w poprzednim zadaniu, algorytm BM nie ma złożoności oczekiwanej rzędu mniejszego niż liniowy.

Rozwiązanie

Zadanie 5

Pokaż, że jeśli cn jest górnym oszacowaniem liczby porównań w algorytmie BM (dla dostatecznie dużych n) to c3

Rozwiązanie