|
|
Linia 13: |
Linia 13: |
| </div> | | </div> |
|
| |
|
| ==''Zadanie 2'' ==
| |
|
| |
| Udowodnij, że algorytm Permutacja-Wagowa jest poprawny.
| |
| <div class="mw-collapsible mw-made=collapsible mw-collapsed">
| |
| Rozwiązanie
| |
|
| |
| <div class="mw-collapsible-content" style="display:none">
| |
| W każdym momencie na wadze jest w sumie pewien spójny przedział ciągu wejściowego,
| |
| na jednej (lewej lub prawej) szalce są elementy z pozycji parzystych, na drugiej z pozycji nieparzystych.
| |
|
| |
| </div>
| |
| </div>
| |
|
| |
|
|
| |
|
| | | |
|
| |
|
| ==''Zadanie 3'' == | | ==''Zadanie 2'' == |
|
| |
|
| Udowodnij, że algorytm Proste-Pakowanie jest poprawny. | | Udowodnij, że algorytm Proste-Pakowanie jest poprawny. |
Linia 45: |
Linia 33: |
|
| |
|
|
| |
|
| ==''Zadanie 4'' ==
| |
|
| |
| Przypuśćmy, że mamy wage szalkową i odważniki będące potęgami trójki, dla każdej potęgi
| |
| dokładnie jeden odważnik. Jak powinniśmy rozmieścić odważniki na wadze, aby doładnie zważyć przedmiot o
| |
| zadanej wadze x?
| |
|
| |
| <div class="mw-collapsible mw-made=collapsible mw-collapsed">
| |
| Rozwiązanie
| |
|
| |
| <div class="mw-collapsible-content" style="display:none">
| |
| Dodajemy minimalną liczbę y>=x, której rozwinięciem w systemie trójkowym są same jedynki,
| |
| tworzymy liczbę z = x+y, rozwijamy z w systemie trójkowym, a potem odejmujemy od każdej
| |
| cyfry jedynkę. Jeśli mamy -1, to odpowiedni odważnik kładziemy na szalce razem z danym przedmiotem,
| |
| jeśli +1, to na drugiej szalce, a jeśli zero - ignorujemy.
| |
| </div>
| |
| </div>
| |
|
| |
|
| |
|
| |
|
| =='''Zadanie 5''' == | | =='''Zadanie 3''' == |
|
| |
|
| Udowodnij poprawność algorytmu na cykliczną równoważność słów. | | Udowodnij poprawność algorytmu na cykliczną równoważność słów. |
Linia 91: |
Linia 61: |
| | | |
|
| |
|
| =='''Zadanie 6''' == | | =='''Zadanie 4''' == |
|
| |
|
| Dla jakich ciągów algorytm na cykliczną równoważność wykonuje maksymalną liczbę porównan symboli? | | Dla jakich ciągów algorytm na cykliczną równoważność wykonuje maksymalną liczbę porównan symboli? |
Zadanie 1
Udowodnij, że algorytm Najdłuższy-Malejący jest poprawny.
Rozwiązanie
Dla każdego nowego niezerowego elementu x, który jest aktualnie na pozycji j-tej, jeśli wstawiamy x na pozycję i-tą,
to w tym momencie na pozycji (i-1)-szej jest pewien jego poprzednik y w najdłuższym ciągu malejącym
kończącym się na pozycji j-tej. To znaczy w szczególności, że y>x, oraz że y jest na pewnej pozycji mniejszej od j.
Zadanie 2
Udowodnij, że algorytm Proste-Pakowanie jest poprawny.
Rozwiązanie
W każdym optymalnym pakowaniu można je tak zmienić, że najmniejszy element będzie razem
z maksymalnym, z którym się mieści do tego samego pudełka
Zadanie 3
Udowodnij poprawność algorytmu na cykliczną równoważność słów.
Rozwiązanie
Relacja mniejszości dla ciągów niech będzie relacją mniejszości leksykograficznej.
Zdefiniujmy:
oraz dla pewnego ,
oraz dla pewnego .
Skorzystamy z prostego faktu:
Jeśli lub , to nie są równoważne.
Poprawność algorytmu wynika teraz z tego, że po każdej głównej iteracji zachodzi niezmiennik:
\ oraz \ .
Zadanie 4
Dla jakich ciągów algorytm na cykliczną równoważność wykonuje maksymalną liczbę porównan symboli?
Rozwiązanie
Dla ciągów postaci o tej samej długości.