![]() |
MOD-Berechnung mit einer Turing-Maschine
'n Abend,
vielleicht nicht zuletzt wegen dieser späten Stunde habe ich grad irgendeine Denkblockade und zweifle bereits an mir selbst. Ich wollte einfach eine mod-Funktion mit unären Zahlen umsetzen. Ich wollte einfach dividieren (zyklisch abziehen), bis es nicht mehr geht und dann gucken, was übrig ist. Ich habe meinen Entwurf leider auf dem Papier gemacht, hoffe ihr versteht, was ich meine. Wie würdet ihr so ein Turingmaschinenprogramm bauen? Danke für Eure Hilfe und einen schönen Abend noch mfg ApfelSandwich PS: Die Sektion heißt "Prgrammierung allgemein" also sind auch Turingmaschinen hier am richtigen Platz, oder? |
AW: MOD-Berechnung mit einer Turing-Maschine
Zitat:
Angenommen man hat folgende Eingabe: (das Pipe sind ist ein Blank oder eine andere Begrenzung).
Code:
Was bedeutet: 3 mod 2 = ?
|aaa|bb|
Dann würde ich durch "darüberscannen" soviele a's entfernen wie es b's gibt und dabei die b's ersetzen:
Code:
Für den nächsten Durchlauf dann die B's zurücksetzten:
|a|BB|
Code:
Nach dem nächsten Schleifendurchlauf müsstest du bemerken das alle a's weg sind, aber noch b's übrig:
|a|bb|
Code:
Das ist ja leicht zu erkennen.
||Bb|
Schließlich noch alles entfernen, was kein b ist:
Code:
Fertig.
|b|
Das in ein Turing-Programm zu gießen ist dann nur noch Schreibarbeit (wenn man die es paar mal geübt hat) :stupid: Wenn dir lustig ist, kannst du die Schleifendurchläufe auch zählen und erhältst damit das Ergebnis der ganzzahligen Division. |
AW: MOD-Berechnung mit einer Turing-Maschine
Danke für Deine Antwort. So in etwa hatte ich mir das auch aufgemahlt. Ich hatte etwa den gleichen Ansatz. Dann liegt mein Fehler wohl nicht im Ansatz, sondern nur in der Umsetzung. Habe daher die Skizze nochmal in Programmcode für den Simulator geschrieben.
Für diesen Simulator: ![]() sieht mein Code so aus:
Code:
Irgendwie hängt er sich dann aber nach State 8 auf, sofern es nur noch ein a gibt. Aber mit 4a und 3b funktioniert das ganze auch nicht sauber. Oder hab ich das mit den b's falsch verstanden?
1,a,1,a,<
1,#,2,#,> 2,a,3,#,> 3,a,3,a,> 3,#,4,#,> 4,S,4,S,> 4,b,5,S,> 5,#,6,#,< 5,b,7,b,< 6,S,6,b,< 6,#,8,#,< 7,b,7,b,< 7,S,7,S,< 7,#,8,#,< 8,a,8,a,< 8,#,9,#,> 9,#,10,#,< 9,a,1,a,> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz