AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MOD-Berechnung mit einer Turing-Maschine

Ein Thema von Mokuba01 · begonnen am 26. Nov 2012 · letzter Beitrag vom 27. Nov 2012
Antwort Antwort
Mokuba01

Registriert seit: 26. Jan 2007
Ort: Neupetershain
76 Beiträge
 
Delphi XE2 Professional
 
#1

MOD-Berechnung mit einer Turing-Maschine

  Alt 26. Nov 2012, 21:33
'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?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: MOD-Berechnung mit einer Turing-Maschine

  Alt 26. Nov 2012, 23:22
Ich wollte einfach dividieren (zyklisch abziehen), bis es nicht mehr geht und dann gucken, was übrig ist.
Das würde ich auch so machen.

Angenommen man hat folgende Eingabe: (das Pipe sind ist ein Blank oder eine andere Begrenzung).
Code:
|aaa|bb|
Was bedeutet: 3 mod 2 = ?

Dann würde ich durch "darüberscannen" soviele a's entfernen wie es b's gibt und dabei die b's ersetzen:
Code:
|a|BB|
Für den nächsten Durchlauf dann die B's zurücksetzten:
Code:
|a|bb|
Nach dem nächsten Schleifendurchlauf müsstest du bemerken das alle a's weg sind, aber noch b's übrig:
Code:
||Bb|
Das ist ja leicht zu erkennen.

Schließlich noch alles entfernen, was kein b ist:
Code:
|b|
Fertig.

Das in ein Turing-Programm zu gießen ist dann nur noch Schreibarbeit (wenn man die es paar mal geübt hat)
Wenn dir lustig ist, kannst du die Schleifendurchläufe auch zählen und erhältst damit das Ergebnis der ganzzahligen Division.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Mokuba01

Registriert seit: 26. Jan 2007
Ort: Neupetershain
76 Beiträge
 
Delphi XE2 Professional
 
#3

AW: MOD-Berechnung mit einer Turing-Maschine

  Alt 27. Nov 2012, 00:28
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: http://ironphoenix.org/tril/tm/
sieht mein Code so aus:

Code:
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,>
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?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz