0 Daumen
327 Aufrufe

Frage:

L = {a^(n) b^(n+1) | n >= 1}


Für die Sprache L einen Stackautomaten (= Kellerautomaten) erstellen.

Code:

Wort w = aabbb wist z.B. in der Sprache

Startsymbol im Stack s0 = 0

(q0, a, 0)  = (q0, 10)

(q0, a, 1)  = (q0, 11)

(q0, b, 1)  = (q1, Epsilon)

(q1, b, 1)  = (q1, Epsilon)  

(q1, b, 0)  = (q2, Epsilon)


das geht ja leider aber nicht im letzten Schritt lese ich "b" und  das letzte Symbol "0" im Stack aber das stimmt ja so nicht. Wenn ich ein "a" einlese schreibe ich im Stack eine "1" und wenn ich ein "b" einlese lösche ich eine "1" aus dem Stack aber mit b^(n+1) geht die Rechnung nicht aus.


kann ich dann beim einlesen des ersten b´s eine 1 in den Stack schreiben und bei den weiteren b´s  die 1en löschen.

Bitte um Hilfe.

LG  

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community