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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rytter (dyskusja | edycje)
Nie podano opisu zmian
 
Rytter (dyskusja | edycje)
Linia 4: Linia 4:
Sprawdz w czasie liniowym czy słowo x jest pierwotne.
Sprawdz w czasie liniowym czy słowo x jest pierwotne.
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  <div class="mw-collapsible-content" style="display:none">.
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  <div class="mw-collapsible-content" style="display:none">.
</div>
 
Za pomocą tablicy prefikso-sufiksów liczymy najkrótszy okres słowa x,  
Za pomocą tablicy prefikso-sufiksów liczymy najkrótszy okres słowa x,  
następnie sprawdzamy czy jest on dzielnikiem długości x.
następnie sprawdzamy czy jest on dzielnikiem długości x.
Można to nawet zrobic bez tablicy prefikso-sufiksów w czasei liniowym  
Można to nawet zrobic bez tablicy prefikso-sufiksów w czasei liniowym  
i pamięci stałej.
i pamięci stałej.
</div>
</div>
</div>



Wersja z 10:56, 12 wrz 2006

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 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 czasei 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