Autor Beitrag
ApfelSandwich
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 26.11.12 22:37 
'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 "Algorithmen", also sind auch Turingmaschinen hier am richtigen Platz, oder?
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 26.11.12 22:46 

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
ApfelSandwich Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 26.11.12 23:03 
Hi Mathematiker, dankeschön für Deine Antwort. Leider konnte ich in den beiden Themen keine Antworten finden. Trotzdem Danke für Deine Mühe beim Suchen.

Ich bin recht verzweifelt, was das Finden einer Lösung angeht. Sry, dass ich nicht an das Verlinken gedacht habe. Jetzt hast du es ja getan.
Einen schönen Abend noch
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 26.11.12 23:07 
Es war keine Mühe. :wink:
Aus den Regeln
Zitat:
3.10 Crosspostings
Stellst du die gleiche Frage auch in einem anderen Forum, dann kennzeichne deine Frage bitte entsprechend und verlinke die Topics untereinander.

Ich habe nur das gemacht, was Du leider im Eifer des Gefechts vergessen hattest.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 27.11.12 16:06 
user profile iconApfelSandwich hat folgendes geschrieben Zum zitierten Posting springen:
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?

So, wie du es beschrieben hast. Die einzige Schwierigkeit ist wohl, beim abziehen vorsichtig zu sein (weil du ja erst merkst, dass es nichtmehr geht, wenn du bei 0 angekommen bist). Mit einer 2-Band-Turingmaschine sollte das aber kein Problem sein.

a mod b

=>
a auf Band 1
b auf Band 2

=>
a und b gleichzeitig nach vorne laufen lassen (=1 abziehen)
b am Ende => du hast einmal b von a abgezogen => Kopf von Band 2 wieder nach vorne holen
a am Ende => diesesmal ist a 0 geworden. Die Kopfposition von Band 2 gibt dir an, wieviel du gelöscht hast, das addierst du also am Ende wieder auf Band 1. => Fertig

Es geht (natürlich) auch mit einem Band mit dem gleichen Prinzip, nur musst du dann die Bänder simulieren (ein Trennzeichen auf dem Band setzen). Ist nur etwas mehr schreib-/rechenaufwand.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Di 27.11.12 16:32 
Moin ApfelSandwich,
hier ein Tip: www.entwickler-ecke.....php?p=510016#510016
mit dem Turingsimulator kannst Du TP's erstellen und testen.
Das m mod n TP könnte so aussehen, Alphabet aufbohren :wink: :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
// repeat m:=m-n until m<n
// BmBnB... --> Bm1nBm1nB...
// z.B. BIIIIIIIIIIBIIIIIB... --> BIIB...
// 9 mod 4 = 1
01#B(REB)1(LIB)(DUP)(RE1)B(LIB)#02
02#B(DIF)R#03
03#BL(VZL)(RE1)BR#04
03#I(RE1)(LIB)R#06
04#IBR#04
04#B(LII)(LIB)#00
06#IBR#06
06#1B(LII)R(VZL)(LIB)#01

Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)