Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- formale Sprachen (http://www.informatikerboard.de/board/board.php?boardid=12)
----- Reguläre Ausdrücke Symbol ungerade Anzahl (http://www.informatikerboard.de/board/thread.php?threadid=3534)


Geschrieben von Oggel am 14.04.2017 um 21:50:

  Reguläre Ausdrücke Symbol ungerade Anzahl

Hi Leute,

ich brauche mal eure Hilfe und zwar bei der Teilaufgabe c)

Wie kann man das mit der ungeraden Anzahl an c's ausdrücken. Ich probiere schon ganze Zeit rum aber komme auf keine Idee.

Hoffe ihr könnt mir helfen smile



Geschrieben von ed209 am 15.04.2017 um 05:43:

 

Auf die schnelle finde ich auch keine elegante Loesung, aber definitiv unelegante smile

Damit meine ich dass das Problem einfacher wird, wenn du nicht um den Fall "2 oder 3 Bs" kuemmerst sondern die Faelle getrennt behandelst und dann zu einem Ausdruck verbindest.

Gruss,
ED



Geschrieben von Oggel am 15.04.2017 um 09:58:

 

Also mit den b's bekommt man das glaube ich hin.

Für "genau 2 b's, ohne die Regel mit den c's zu berücksichtigen" würde ich das so machen:
[latex](a|b|c)^* b (a|b|c)^* b (a|b|c)^*[/latex]

Aber wie würde man in die Regel jetzt einbauen, dass das Symbol c eine ungerade Anzahl oft vorkommt? Ich bekomme da nichts gescheites hin unglücklich

Nach einiger Überlegung habe ich nochmal versucht nur die Regel ungerade Anzahl c's zu beschreiben:
[latex](c|(ccc * (cc)^*))^*[/latex]

Würde das so funktionieren? verwirrt



Geschrieben von Oggel am 18.04.2017 um 10:52:

 

Also ich habe es nochmal neu versucht und zwar so:

Also es muss ja eine ungerade Anzahl c's sein, dann muss wenn ein c drin ist ja immer 2 weitere kommen. Außerdem können a's ja überall im Ausdruck kommen. Ich habe mir zunächst 2 Teilausdrücke definiert:
[latex]c_2 := (a^*ca^*ca^*)^*[/latex]
[latex] g:= a^*c_2a^*[/latex]

Für 2 b's:
[latex]b_2 := [/latex] gcgbgcgbgcg | gcgbgbg | gbgcgbg | gbgbgcg

Für 3 b's:
[latex]b_3 := [/latex] gcgbgcgbgcgb |gbgcgbgcgbgcg | gcgbgbgbg | gbgcgbgbg | gbgbgcgbg |gbgbgbgcg

Und dann schließlich:
[latex] f := b_2 | b_3[/latex]

Ich hoffe das stimmt so? Alle Testausdrücke die ich gefunden habe konnte man damit darstellen. Was sagst du? verwirrt


Forensoftware: Burning Board, entwickelt von WoltLab GmbH