ASD Ćwiczenia 13: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 207: | Linia 207: | ||
</div> | </div> | ||
=='''Zadanie | =='''Zadanie 10''' == | ||
Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań | Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań | ||
Linia 219: | Linia 219: | ||
w szufladce <math> A</math> będzie co najwyżej <math> n</math> porównań, a w szufladce <math> B</math> co najwyżej | w szufladce <math> A</math> będzie co najwyżej <math> n</math> porównań, a w szufladce <math> B</math> co najwyżej | ||
<math> \frac{n}{2}</math> porównań. | <math> \frac{n}{2}</math> porównań. | ||
Do szufladki <math> A</math> wrzucamy: | Do szufladki <math> A</math> wrzucamy: | ||
Linia 241: | Linia 240: | ||
za wyjątkiem nieudanych porównań pierwszej litery; są to nieudane porównania | za wyjątkiem nieudanych porównań pierwszej litery; są to nieudane porównania | ||
dokonywane w momencie, gdy znaleźliśmy już jakiś niepusty prefiks <math> x'</math> . | dokonywane w momencie, gdy znaleźliśmy już jakiś niepusty prefiks <math> x'</math> . | ||
<br> Porównania początkowych liter <math> a</math> na tych pozycjach, gdzie wcześniej | <br> Porównania początkowych liter <math> a</math> na tych pozycjach, gdzie wcześniej | ||
Linia 270: | Linia 268: | ||
W związku z tym: | W związku z tym: | ||
<br> | <br> | ||
Porównania z szufladki <math> B</math> , podpunkt <math> 1</math> przesuwają wskaźnik o conajmniej | Porównania z szufladki <math> B</math> , podpunkt <math> 1</math> przesuwają wskaźnik o conajmniej | ||
<math> k+1 \geq 2</math> . | <math> k+1 \geq 2</math> . | ||
<br> | <br> | ||
Linia 285: | Linia 280: | ||
takich porównań liter <math> a</math> w jednej próbie znalezienia wzorca <math> x</math> . | takich porównań liter <math> a</math> w jednej próbie znalezienia wzorca <math> x</math> . | ||
<br><br> | <br><br> | ||
Czyli każde porównanie z szufladki <math> B</math> przesuwa wskaźnik ,,gdzie teraz | Czyli każde porównanie z szufladki <math> B</math> przesuwa wskaźnik ,,gdzie teraz | ||
szukamy'' o conajmniej <math> 2</math> , czyli tych porównań jest nie więcej niż | szukamy'' o conajmniej <math> 2</math> , czyli tych porównań jest nie więcej niż | ||
<math> \frac{n}{2}</math> . | <math> \frac{n}{2}</math> . | ||
''(Rozwiązanie opracował Marcin Pilipczuk)'' | ''(Rozwiązanie opracował Marcin Pilipczuk)'' | ||
</div> | </div> | ||
</div> | </div> |
Wersja z 17:31, 18 gru 2006
Zadanie 1
Uzasadnij poprawność algorytmu obliczającego długość najkrótszego słowa pokrywającego dany tekst.
Rozwiązanie
Zadanie 2
Udowodnij, że w wersji on-line algorytmu KMP mamy
Rozwiązanie
Zadanie 3
Udowodnij, że w wersji on-line algorytmu KMP mamy
Rozwiązanie
Zadanie 4
Udowodnij poprawność algorytmu na cykliczną równoważność słów.
Rozwiązanie
Zadanie 5
Dla jakich tekstów algorytm na cykliczną równoważność słów wykonuje maksymalną liczbę porównan symboli?
Rozwiązanie
Zadanie 6
Mamy zbiór słów, każde długości dwa, obliczyć długość minimalnego tekstu który zawiera wszystkie słowa.
Rozwiązanie
Zadanie 7
Udowodnij następującą ciekawą własność kombinatoryczną okresowości w tekstach. Niech oznacza najmniejszy wspólny dzielnik p,q.
Lemat [Lemat o okresowości]
Jeśli x ma okresy p, q oraz , to jest również okresem x.
Rozwiązanie
Zadanie 8
Lemat o okresowości można wzmocnić, osłabiając założenia. Udowodnij następujący lemat.
Lemat [Silny lemat o okresowości]
Jeśli x ma okresy p, q oraz , to jest również okresem x.
Rozwiązanie
Zadanie 9
Udowdnij poprawność algorytmu KMP realtime
Rozwiązanie
Zadanie 10
Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań
Rozwiązanie