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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rytter (dyskusja | edycje)
Dorota (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
==Zadanie 1==
==Zadanie 1==
Udwodnij, że jeśli <math> LZ(x)\ =\ (v_{1},v_{2},\dots ,v_{m})</math> to x zawiera powtórzenie uu  
Udwodnij, że jeśli <math> LZ(x)\ =\ (v_{1},v_{2},\dots ,v_{m})</math>, to <math>x</math> zawiera powtórzenie <math>uu</math>
wtedy i tylko wtedy gdy dla pewnego k zachodzi
wtedy i tylko wtedy, gdy dla pewnego <math>k</math> zachodzi


<center>
<center>
Linia 7: Linia 7:
<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">.


Jeśli środek powtórzenia byłby wcześniej to <math> v_k </math> by nie występowało w faktoryzacji.
Jeśli środek powtórzenia byłby wcześniej, <math> v_k </math> nie występowałoby w faktoryzacji.
</div>
</div>
</div>
</div>
Linia 13: Linia 13:
== Zadanie 2 ==
== Zadanie 2 ==


Oblicz faktoryzację LZ(x) w czasei liniowym.
Oblicz faktoryzację LZ(x) w czasie liniowym.


<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">.


Skorzystaj z drzewa sufiksowego, z dodatkową informacja w węzłach.
Skorzystaj z drzewa sufiksowego z dodatkową informacją w węzłach.
</div>
</div>
</div>
</div>
Linia 23: Linia 23:
== Zadanie 3 ==
== Zadanie 3 ==


Udowdnij, ze algorytm Szukanie-Powtórzeń dziła w czasie liniowym.
Udowodnij, że algorytm Szukanie-Powtórzeń działa w czasie liniowym.


<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">.


Złożoność liczenia alternatywy RightTest(u1,v1) lub RightTest(u2,v2) jest <math> O(|v_{k-1}v_k|)</math>, oraz zachodzi
Złożoność liczenia alternatywy RightTest(u1,v1) lub RightTest(u2,v2) jest <math> O(|v_{k-1}v_k|)</math> oraz zachodzi
<math> \sum_{k=1}^m\ |v_{k-1}v_k| \le 2n </math> </div>
<math> \sum_{k=1}^m\ |v_{k-1}v_k| \le 2n </math> </div>
</div>
</div>
Linia 45: Linia 45:
== Zadanie 5 ==
== Zadanie 5 ==


Udowdnij,  własność dowolnych palstarów:
Udowodnij własność dowolnych palstarów:


<math> x[i..n] \in PAL^* \ \Rightarrow\ parse(i)\in \{first(i),\ 2\cdot first(i)+1,\ 2\cdot first(i)-1\}</math>
<math> x[i..n] \in PAL^* \ \Rightarrow\ parse(i)\in \{first(i),\ 2\cdot first(i)+1,\ 2\cdot first(i)-1\}</math>
Linia 58: Linia 58:
==Zadanie 6==
==Zadanie 6==
Udowodnij,  że jeśli <math> x \in PAL^2</math>  
Udowodnij,  że jeśli <math> x \in PAL^2</math>  
to x=uv, dla pewnych <mtah> u,v \in PAL </math> gdzie u jest najdłuższym palindromem będącym prefiksem x lub v  
to <math>x=uv</math> dla pewnych <mtah> u,v \in PAL </math>, gdzie <math>u</math> jest najdłuższym palindromem będącym prefiksem <math>x</math> lub <math>v</math>
jest najdłuższym palindromem będącym sufiksem x.
jest najdłuższym palindromem będącym sufiksem <math>x</math>.
<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">.


Skorzystaj z symetrii. </div>
Skorzystaj z symetrii. </div>
</div>
</div>

Wersja z 13:25, 25 wrz 2006

Zadanie 1

Udwodnij, że jeśli LZ(x) = (v1,v2,,vm), to x zawiera powtórzenie uu wtedy i tylko wtedy, gdy dla pewnego k zachodzi

RightTest(v1,v2vk2, vk1vklubRighttest(v1,v2vk1, vk)
Rozwiązanie

Zadanie 2

Oblicz faktoryzację LZ(x) w czasie liniowym.

Rozwiązanie

Zadanie 3

Udowodnij, że algorytm Szukanie-Powtórzeń działa w czasie liniowym.

Rozwiązanie

Zadanie 4

Udowodnij własność parzystych palstarów:

x[i..n]PAL0*  parse0(i)=first0(i)

Rozwiązanie

Zadanie 5

Udowodnij własność dowolnych palstarów:

x[i..n]PAL*  parse(i){first(i), 2first(i)+1, 2first(i)1}

Rozwiązanie


Zadanie 6

Udowodnij, że jeśli xPAL2 to x=uv dla pewnych <mtah> u,v \in PAL </math>, gdzie u jest najdłuższym palindromem będącym prefiksem x lub v jest najdłuższym palindromem będącym sufiksem x.

Rozwiązanie