0 Daumen
299 Aufrufe

Frage:

Gebe zur folgende Sprache über dem Alphabet Σ = {0, 1} eine Grammatik an, die die
Menge aller Zeichenketten, in denen drei aufeinander folgende Nullen auftreten, erzeugt:
L((0∣1)*000(0∣1)*)

Meine Lösung:

Text erkannt:

\( \begin{array}{l}T=\{0, 1\} \\ N=\{A, B, C, D\} \\ S=A \\ P=\left\{\begin{array}{l}A:=1 A \\ A: \because=0 A \\ A:=0 B \\ D::=O C \\ C \because=O D \\ D::=0 D \\ D:=1 D\end{array}\right.\end{array} \)

Könnte jemand prüfen, ob es richtig ist? Ggf. einen besseren/ den richtigen Lösungsvorschlag machen.

Wäre die Grammatik eindeutig? Falls nein, wie würde sie eindeutig werden?

Danke

Avatar von

Bei P sollte natürlich ::= überall stehen

Die vierte Zeile sollte ein B und nicht ein D sein.

1 Antwort

0 Daumen

\(\begin{aligned}S &\to A000A\\A &\to \varepsilon|0|1|AA\end{aligned}\)

Avatar von 5,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community