Zaawansowane algorytmy i struktury danych/Ćwiczenia 1: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
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 | <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 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 jest ustalony, ma długość , a tekst , w którym szukamy , jest losowym tekstem długości , 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 w czasie oczekiwanym (średnim)
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
Rozwiązanie