ich möchte einen regulären Ausdruck bilden, weiss aber leider nicht weiter.
L = {w | w ∈ {a,b,c}^* und w enthält mindestens ein a und mindestens ein b}
Möglich ist also jede beliebige Kombination aus a’s, b’s und c’s, wobei aber mindestens ein a und mindestens ein b enthalten sein muss. Und zwar an beliebiger Stelle.
Habe nun lange herumprobiert und komme nicht weiter. Kann mit jemand helfen?
L = {w | w ∈ {a,b,c}^* und w enthält mindestens ein a und
mindestens ein b}
Habe nun lange herumprobiert und komme nicht weiter. Kann mit
jemand helfen?
Wie man das als Grammatik formulieren kann, fällt mir gerade nicht ein. Ich werd mal weiter aufräumen und drüber nachdenken.
Ich weiß nicht, welche Anforderungen an den Stil gelegt werden, sonst kann man auch einfach L_1 als den z_1-Weg nehmen und L_2 als den z_2-Weg und L=L_1+L_2, denn die lassen sich ja problemlos als DEA schreiben.
bei der Definition des regulären Ausdrucks kann man folgendermaßen herangehen:
Wir wissen, dass in dem Wort ein a und ein b ist. Entweder kommt erst das a und dann das b oder anders rum. Dazwischen sowie davor und danach steht irgendetwas. Also:
R = (a\*b\*c\*)\*a(a\*b\*c\*)\*b(a\*b\*c\*)\* | (a\*b\*c\*)\*b(a\*b\*c\*)\*a(a\*b\*c\*)\*
Wenn man den beliebigen Teil noch in einer Variablen definiert, sieht das auch nicht ganz so viel aus:
Ich würde einen DEA mit folgenden Zuständen bzw. Übergängen konstruieren (bzw. skizzieren):
q0—a--->q1
q0—b--->q2
q0—c--->q0
q1—a--->q1
q1—b--->q3
q1—c--->q1
q2—a--->q3
q2—b--->q2
q2—c--->q2
q3—a--->q3
q3—b--->q3
q3—c--->q3
start = q0
end = q3
daraus lässt sich dieser reguläre Ausdruck herleiten:
c*(a[ac]*b)|(b[bc]*a)[abc]*
in Worten:
beliebig viele c
genau ein a, beliebig viele a oder c, genau ein b
ODER
genau ein b, beliebig viele b oder c, genau ein a
beliebig viele a, b, c