Wstęp do programowania / Ćwiczenia 5: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Aneczka (dyskusja | edycje)
Aneczka (dyskusja | edycje)
Linia 178: Linia 178:
Podaj gramatykę generującą słowa nad alfabetem {0,1}, w których nie występuje podsłowo 000.
Podaj gramatykę generującą słowa nad alfabetem {0,1}, w których nie występuje podsłowo 000.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">
{{rozwiazanie| 1||<div class="mw-collapsible mw-made=collapsible mw-collapsed"> <div class="mw-collapsible-content" style="display:none">
'''Rozwiązanie 1''' 
<div class="mw-collapsible-content" style="display:none">
S<sub>0</sub> → &epsilon; | S<sub>0</sub>1 | S<sub>1</sub>1 | S<sub>2</sub>1  
S<sub>0</sub> → &epsilon; | S<sub>0</sub>1 | S<sub>1</sub>1 | S<sub>2</sub>1  


Linia 193: Linia 191:
Zgodność i pełność tej gramatyki wynika z faktu, że S<sub>j</sub> generuje wszystkie słowa w nie zawierające 000 i kończące się na j zer.  
Zgodność i pełność tej gramatyki wynika z faktu, że S<sub>j</sub> generuje wszystkie słowa w nie zawierające 000 i kończące się na j zer.  
</div>
</div>
</div>
</div>}}


<div class="mw-collapsible mw-made=collapsible mw-collapsed">
{{rozwiazanie| 2||<div class="mw-collapsible mw-made=collapsible mw-collapsed"> <div class="mw-collapsible-content" style="display:none">
'''Rozwiązanie 2''' 
<div class="mw-collapsible-content" style="display:none">
S<sub>0</sub> → &epsilon; | S<sub>0</sub>1 | S<sub>0</sub>01 | S<sub>0</sub>001  
S<sub>0</sub> → &epsilon; | S<sub>0</sub>1 | S<sub>0</sub>01 | S<sub>0</sub>001  


Linia 206: Linia 202:
Ta gramatyka powstała z poprzedniej przez usunięcie symboli S<sub>1</sub> i S<sub>2</sub> i włączenie ich (pojedynczych) produkcji do produkcji pozostałych symboli.
Ta gramatyka powstała z poprzedniej przez usunięcie symboli S<sub>1</sub> i S<sub>2</sub> i włączenie ich (pojedynczych) produkcji do produkcji pozostałych symboli.
</div>
</div>
</div>
</div>}}


<div class="mw-collapsible mw-made=collapsible mw-collapsed">
{{rozwiazanie| 3||<div class="mw-collapsible mw-made=collapsible mw-collapsed"> <div class="mw-collapsible-content" style="display:none">
'''Rozwiązanie 3''' 
<div class="mw-collapsible-content" style="display:none">
Z → &epsilon; | 0 | 00  
Z → &epsilon; | 0 | 00  


Linia 221: Linia 215:
S - ciąg krótkich ciągów zer poprzedzielanych jedynkami
S - ciąg krótkich ciągów zer poprzedzielanych jedynkami
</div>
</div>
</div>
</div>}}


<div class="mw-collapsible mw-made=collapsible mw-collapsed">
<div class="mw-collapsible mw-made=collapsible mw-collapsed">

Wersja z 12:00, 1 sie 2006

<<< Powrót do głównej strony wykładu

<<< Powrót do modułu 5

To są ćwiczenia z gramatyk bezkontekstowych.

Ogladaj rozwiązania __SHOWALL__
Ukryj rozwiązania __HIDEALL__


Zadanie 1 (palindromy)

Napisz gramatykę generującą wszystkie palindromy nad alfabetem {0,1}.

Rozwiązanie

0

Zadanie 2

Napisz gramatykę generującą język wszystkich słów nad alfabetem {0,1} postaci 0n1m0n+m.

Rozwiązanie 1

1J0 S → J

Zadanie 3 (wyrażenia nawiasowe)

Napisz gramatykę generującą wszystkie poprawne wyrażenia nawiasowe.

Rozwiązanie 1

(S)

Rozwiązanie 2

ε

Zgodność: oczywista.

Pełność: podobnie jak w Rozwiązaniu 1. Dla uzyskania danego słowa w o długości > 0 należy posłużyć się funkcją fw. Przyglądając się pierwszej pozycji j>0 dla której fw(j)=0, zauważamy, że słowa w2...wj1 oraz wj+1...wn są poprawnymi wyrażeniami nawiasowymi o mniejszej długości. Zatem można uzyskać wyprowadzenie słowa w S(S)Sw.

Zadanie 4

Podaj gramatykę języka słów w nad alfabetem {0,1} takich, że #0(w)=#1(w)

Rozwiązanie 1

0S1

Rozwiązanie 2

1S0S

Zadanie 5

Podaj gramatykę języka słów w nad alfabetem {0,1} takich, że #0(w)=#1(w)+1

Rozwiązanie 1

1R0

Zadanie 6 (liczby podzielne przez 3)

Podaj gramatykę generującą liczby w zapisie binarnym, które są podzielne przez 3.

Rozwiązanie 1

S00

Ćwiczenie 1

{{{3}}}

Odpowiedź

S11 S1 → 1

Zadanie 7

Podaj gramatykę generującą słowa nad alfabetem {0,1}, w których nie występuje podsłowo 000.

Rozwiązanie 1

S01

Rozwiązanie 2

S01

Rozwiązanie 3

0

Dla ciekawskich