Problem bei Konzept/Umsetzung der Turingmaschine?
Hallo,
ich soll eine Turingmaschine modellieren, die folgendes macht:
-Modulo 2 einer Unärzahl m, sodas für das Ergebnis gilt:
- 0, wenn m durch zwei teilbar
- 1 sonst.
Alpabet sei [0,1].
Meine Idee war folgende:
Ziehe immer zwei ab, solange bis entweder 0 oder 1 dasteht.
m=4
1111
1100
0000 => Rest 0
m=3
111
100 => Rest 1
Nun jetzt mein Problem:
Die TM kann sich keine Werte merken, also wie realisiere ich das er nur dann abzieht wenn wirklich noch zwei 1'en zum abziehen da sind? Er muss irgendwie wissen das er nur zwei Einsen aufeinmal entfernen darf oder er entfernt garnichts.
Oder ist mein Konzept falsch?
Vielen Dank für hilfreiche Antworten.
mfg werdas34
3 Antworten
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
Meinst du nicht Binärzahl?
Dann überleg dich mal wann eine solche durch 2 teilbar ist.. Zeit für ein bisschen Theorie muss sein ;)
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
@triopasi
Eine Zahl ist durch 2 teilbar wenn der Rest 0 ist. Wenn eine 1 rauskommt ist diese Zahl nicht durch 2 teilbar. Das bringt mich aber auch nicht weiter. Oder meinst du was anderes?
Wäre das Alphabet um eine Einheit erweitert z.B. [0,1,2] könnte ich es lösen. Aber mir bleibt es mit Modulo 2 ein Rätsel, da die TM prüfen muss ob es noch zwei Einsen gibt, die abgezogen werden können. Aber ich nicht weiß, wie man eine Art Speicherung modelliert?
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/PerfectMuffin/1444748168_nmmslarge.jpg?v=1444748168000)
Du kannst das Speichern von Variablen in Zuständen modellieren.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
@PerfectMuffin
Und wie sehe das ungefähr aus ? Hab selber schon mit allen mir möglichen, erdenklichen Tricks versucht eine Art Speicherung zu modellieren. Jedoch wie man sieht, ohne Erfolg.
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
Eine Turingmaschine kann sich nicht merken? Das wäre mir aber neu.
Am einfachsten für diesen Fall wäre wohl die Kodierung in Zuständen.
Stern -> ungerade, nächster Stern Zustand für gerade usw. usf. .
Du kannst es aber auch im Bandalphabet kodieren.
Wie man aus den Beispielen erkennt, handelt es sich um Unärzahlen - so wie auch in der Fage angeführt, nicht um Binärzahlen.