Krümelchen
Banned
- Registriert
- Juli 2014
- Beiträge
- 57
Hallo,
nachdem ich jetzt schon den ganzen Nachmittag und den Abend bei diesen Aufgaben verbringe wollte ich hier mal nachfragen.
Gibt es irgendwelche "Tricks" (außer viele zu entwickeln) um für Turingmaschinen Programme zu erstellen?
Wenn ich mir zB auf Wikipedia den Algorithmus zur verdopplung der Einsen oder hier den zum erkennen von Wörtern ansehe dann hab ich ziemliche Probleme damit zu eruieren wie man auf diesen Weg gekommen ist. Es ist doch alles etwas abstrakt. Vor allem wenn man nichtmal schöne Sprungadressen oder Zähler hat.
Und sollte man die Übergngsfunktionen großzügig gestalten oder eher weniger nehmen?
Unter anderem habe ich hier zB diesen bei dem man die Länge von zwei Wörtern bestimmen muss. Aber irgendwie weiß ich nicht ob er so passt.
Bsp: XabcdXasdfgX wird zu X111111111X
Mein Algorithmus:
So weit funktioniert dieser auch, ich habe aber das Problem, dass wenn jettz das mittlere X gelesen wird lässt er es weiterhin stehen und geht bis nach links zum Nächsten X.
Optimal wäre aber wenn das mittlere X gelöscht wird und wenn er ganz links oder wieder rechts ankommt, dass er hält.
Ich könnte zwar das mittlere X löschen und dann weitergehen aber was passiert dann ganz links? Dann wird er dass doch auch löschen.
Wo kann ich bei sowas ansetzen? Ich hab zwar auch probiert, dass er nach dem mittleren X nach rechts geht und dann wieder nach links in einen anderen Zustand aber dann stehe ich wieder bei dem linkesten X.
Wäre super wenn mir da jemand ein paar Tipps geben kann.
nachdem ich jetzt schon den ganzen Nachmittag und den Abend bei diesen Aufgaben verbringe wollte ich hier mal nachfragen.
Gibt es irgendwelche "Tricks" (außer viele zu entwickeln) um für Turingmaschinen Programme zu erstellen?
Wenn ich mir zB auf Wikipedia den Algorithmus zur verdopplung der Einsen oder hier den zum erkennen von Wörtern ansehe dann hab ich ziemliche Probleme damit zu eruieren wie man auf diesen Weg gekommen ist. Es ist doch alles etwas abstrakt. Vor allem wenn man nichtmal schöne Sprungadressen oder Zähler hat.
Und sollte man die Übergngsfunktionen großzügig gestalten oder eher weniger nehmen?
Unter anderem habe ich hier zB diesen bei dem man die Länge von zwei Wörtern bestimmen muss. Aber irgendwie weiß ich nicht ob er so passt.
Bsp: XabcdXasdfgX wird zu X111111111X
Mein Algorithmus:
Code:
Angefangen wird bei dem rechtesten X
Zustand | gelesen | schreib | neuer Zustand/Richtung
1 | X | | 2,L
1 | 1 | | 2,L
2 |a-z | 1 | 1
2 | X | | 2,L
So weit funktioniert dieser auch, ich habe aber das Problem, dass wenn jettz das mittlere X gelesen wird lässt er es weiterhin stehen und geht bis nach links zum Nächsten X.
Optimal wäre aber wenn das mittlere X gelöscht wird und wenn er ganz links oder wieder rechts ankommt, dass er hält.
Ich könnte zwar das mittlere X löschen und dann weitergehen aber was passiert dann ganz links? Dann wird er dass doch auch löschen.
Wo kann ich bei sowas ansetzen? Ich hab zwar auch probiert, dass er nach dem mittleren X nach rechts geht und dann wieder nach links in einen anderen Zustand aber dann stehe ich wieder bei dem linkesten X.
Wäre super wenn mir da jemand ein paar Tipps geben kann.
