Karl Pech
2004-10-24 13:08:17 UTC
Hallo Leute,
Ich kämpfe im Moment mit folgender Aufgabe und weiß keinen Ansatz:
~~~
Es sei L = {bin(n)^R | n aus |N und 3 teil n}, wobei zum Wort
x = x_1...x_n mit x^R = x_n...x_1 die Spiegelung von x bezeichnet wird.
(a) Konstruieren Sie einen DEA, der genau die Wörter der Sprache L akzeptiert.
(b) Geben Sie eine reguläre Grammatik G für die Sprache L an. Beweisen Sie:
L = L(G).
~~~
Zu (b) habe ich im Moment gar keine Ideen, aber zu (a) habe ich 'was im "Netz der
Netze" entdeckt, nämlich das eine Binärzahl genau dann durch 3 teilbar ist, wenn
ihre alternierende Summe durch 3 teilbar ist. Leider wußte ich vorher nicht, ob
damit auch Summen gemeint sind, die von rechts nach links gebildet werden. Deshalb
habe ich ein kleines Delphi-Programm dazu geschrieben, welches mir das Ganze verdeutlichen
sollte: http://offskat-game.sf.net/test.zip . Nach dem Ergebnis zu urteilen, daß mir dieses
Programm geliefert hat, würde ich sagen, daß es keinen Unterschied macht von welcher Seite
addiert wird. Im Übrigen müßte ich nun einen DEA finden, dessen Zustandsübergangsfunktion
d im Grunde so ähnlich definiert ist d(z, x) := (z, alternierende_Summe(x)). Diese Funktion befindet
sich in der Datei myunit.pas. Allerdings ergeben sich hier Schwierigkeiten, denn
wie soll ich die Rekursivität von alternierende_Summe auf d übertragen und wie soll ich die
eigentlichen Rechenoperationen in alternierende_Summe auf d übertragen?
Vielen Dank!
Viele Grüße
Karl
Ich kämpfe im Moment mit folgender Aufgabe und weiß keinen Ansatz:
~~~
Es sei L = {bin(n)^R | n aus |N und 3 teil n}, wobei zum Wort
x = x_1...x_n mit x^R = x_n...x_1 die Spiegelung von x bezeichnet wird.
(a) Konstruieren Sie einen DEA, der genau die Wörter der Sprache L akzeptiert.
(b) Geben Sie eine reguläre Grammatik G für die Sprache L an. Beweisen Sie:
L = L(G).
~~~
Zu (b) habe ich im Moment gar keine Ideen, aber zu (a) habe ich 'was im "Netz der
Netze" entdeckt, nämlich das eine Binärzahl genau dann durch 3 teilbar ist, wenn
ihre alternierende Summe durch 3 teilbar ist. Leider wußte ich vorher nicht, ob
damit auch Summen gemeint sind, die von rechts nach links gebildet werden. Deshalb
habe ich ein kleines Delphi-Programm dazu geschrieben, welches mir das Ganze verdeutlichen
sollte: http://offskat-game.sf.net/test.zip . Nach dem Ergebnis zu urteilen, daß mir dieses
Programm geliefert hat, würde ich sagen, daß es keinen Unterschied macht von welcher Seite
addiert wird. Im Übrigen müßte ich nun einen DEA finden, dessen Zustandsübergangsfunktion
d im Grunde so ähnlich definiert ist d(z, x) := (z, alternierende_Summe(x)). Diese Funktion befindet
sich in der Datei myunit.pas. Allerdings ergeben sich hier Schwierigkeiten, denn
wie soll ich die Rekursivität von alternierende_Summe auf d übertragen und wie soll ich die
eigentlichen Rechenoperationen in alternierende_Summe auf d übertragen?
Vielen Dank!
Viele Grüße
Karl