Mein Lösungsansatz sieht wie folgt aus:
Mein Ausdruck für Anzahl der Nullen durch 3 teilbar:
1*(01*01*0)*1*
Und jetzt muss ich darin irgendwie die Anzahl der 1en gerade machen. Meine Idee ist die folgende (der Einfachheit halber schreibe ich jetzt 'u' für eine Folge von Einsen ungerader Anzahl und 'g' für eine Folge von Einsen gerader Anzahl):
2x ungerade Anzahl ergibt gerade Anzahl, 4 ungerade = gerade usw.:
u(0u0u0)u + g(0g0u0)u + u(0u0g0)g + u(0g0u0)g + g(0u0g0)u + g(0u0u0)g + u(0g0g0)u + g(0g0g0)g
Jetzt ersetze ich 'u' durch 1^(2k-1), k[i] element {1,2,3...}, i element {0,1,2,...}. Dann stelle ich 'g' als 1^2n[i] dar, n[i] element {0,1,2,...}. Und die 0en ersetze ich durch 0^d, d=3n[i]. Dann müssten alle möglichen Zeichenfolgen, die die Bedingungen vom Anfangspost erfüllen, drin sein.
Aber irgendwie sieht das für mich seltsam aus und auch zu kompliziert (zumal in einer anderen Aufgabe man dann eine CFG dazu angeben soll und die dann noch in BNF umformen...).
Vielleicht wollten die Aufgabensteller auch nur, dass der Student leidet...
Wie auch immer...