Turing Machine - zrcadlení

Květomír

Turing Machine - zrcadlení
« kdy: 15. 11. 2012, 10:10:22 »
Zdravím,
mám takový problém, nepodařilo se mi za mák přijít na kód pro Turingův přístroj, který by zrcadlil číslo, či třeba i něco jiného, ale primárně myšleno na čísla (0,1). Povedlo se mi pouze prohodit nuly a jedničky, ale mám problém s číslem například 11100 či složitější, neboť to dokáži převést pouze na 00011, ale nikoliv na 00111. Toto číslo je pouze příklad, dokáži to napsat přímo na konkrétní číslo, ale potřebuji, aby to zvládlo libovolné číslo. Tedy ten stejný kód by převedl 00011 na 11000 i 11110 na 01111 (příklad).

Předem děkuji moc všem, kteří mi s tím pomůžou.  :)

PS: Psát jsem to zkoušel v online simulátoru : http://morphett.info/turing/turing.html


karel

Re:Turing Machine - zrcadlení
« Odpověď #1 kdy: 15. 11. 2012, 10:35:38 »
Tohle dělá zásobníkový automat. Ten stačí převést na turingův stroj a máš hotovo.

Milan

Re:Turing Machine - zrcadlení
« Odpověď #2 kdy: 15. 11. 2012, 11:05:25 »
Jsem liny to vysvetlovat, takze:

Kód: [Vybrat]
0 _ z l 1
0 * * r *
1 _ * r 2
1 * * l *
2 z _ * halt
2 0 _ r 20
2 1 _ r 21
20 0 _ l 200
200 _ 0 r 209
20 1 _ l 201
201 _ 1 r 209
20 z 0 l 202
202 _ z l 1
209 * * r 20
21 0 _ l 210
210 _ 0 r 219
21 1 _ l 211
211 _ 1 r 219
21 z 1 l 212
212 _ z l 1
219 * * r 21

Květomír

Re:Turing Machine - zrcadlení
« Odpověď #3 kdy: 15. 11. 2012, 11:45:52 »
Děkuji mnohokrát Milane, to je přesně ono  ;)

wamba

Re:Turing Machine - zrcadlení
« Odpověď #4 kdy: 15. 11. 2012, 12:01:05 »
jiná verze, ale ta Milanova je propracovanější
Kód: [Vybrat]
0 0 0 r 0
0 1 1 r 0
0 _ u * 1
1 1 1 l 1
1 0 0 l 1
1 u u l 2
1 x x l 1
2 x x l 2
2 0 x r 4
2 1 x r 3
2 _ _ r 5
3 1 1 r 3
3 0 0 r 3
3 x x r 3
3 u u r 3
3 _ 1 l 1
4 1 1 r 4
4 0 0 r 4
4 x x r 4
4 u u r 4
4 _ 0 l 1
5 x _ r 5
5 u _ r halt