PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einsteigerfragen


juneday
05.11.2009, 11:35
Hallo liebe Leute,

damit der Thread nicht nur für mich Ressourcen verschwendet, könnte er eventuell für alle Einsteigerfragen genutzt werden, die auch andere User haben;

ganz kurz eine wohl sehr leichte Basic-Frage:

Find a regular expression which describes the regular language L :
L is the language over the alphabet {a, b} with
L = {aba, Epsilon, aa, bbb}.

Mein Lösungsansatz:

a*b*a*

Ist dies nun richtig und reicht das als Antwort? Was genau wäre sonst gemeint? Ich habs zwar getestet mit Webapplikationen, kommt auch immer was richtiges raus, aber ich weiß nun nicht ob das so reicht?!

Vielen Dank im Voraus!


BrudaSwen
05.11.2009, 18:14
Also meiner Meinung nach sollte der reguläre Ausdruck so aussehen:
(aba | Epsilon | aa | bbb)

Weil a*b*a* erlaubt auch "aaaaa", was aber nicht Element von L ist.

Alamar
05.11.2009, 18:34
(ab?a|bbb)?

juneday
05.11.2009, 19:27
(ab?a|bbb)?
Ok. Danke soweit;

das ? ist also dem * identisch, nehm ich an?

Woran erkenn ich, ob der Operator nur dem b und nicht dem ab zugehörig ist?

Müsste es dann a?b? heißen bei letzterem Falle?

BrudaSwen
05.11.2009, 19:30
das ? ist also dem * identisch, nehm ich an?

? bedeutet "einmal oder keinmal".


Woran erkenn ich, ob der Operator nur dem b und nicht dem ab zugehörig ist?
Der bezieht sich immer NUR auf das vorherige Zeichen!

juneday
05.11.2009, 19:35
Der bezieht sich immer NUR auf das vorherige Zeichen!

Und wenn es sich auf längere Zeichenfolgen beziehen soll? Etwa aaaaabbbbbaaaa ? Klammern drum?

BrudaSwen
05.11.2009, 20:00
Und wenn es sich auf längere Zeichenfolgen beziehen soll? Etwa aaaaabbbbbaaaa ? Klammern drum?
Jop.

Jan Krüger
06.11.2009, 12:32
damit der Thread nicht nur für mich Ressourcen verschwendet, könnte er eventuell für alle Einsteigerfragen genutzt werden, die auch andere User haben
Ich finde die Variante mit einem Thread pro Frage übersichtlicher. Über die Ressourcen brauchen wir uns nun wirklich keine Gedanken zu machen.

Zum Thema: der "?"-Operator ist in formalen regulären Ausdrücken (also in der theoretischen Informatik) normalerweise nicht definiert. Praxistaugliche Implementierungen von regulären Ausdrücken haben ihn aber fast immer.

Wenn man einen formalen regulären Ausdruck für die Aufgabe möchte, kann man "?" nicht verwenden... dann bleibt einem nur übrig, den Ausdruck von BrudaSwen zu benutzen.