Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Květomír 15. 11. 2012, 10:10:22

Název: Turing Machine - zrcadlení
Přispěvatel: Květomír 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 (http://morphett.info/turing/turing.html)
Název: Re:Turing Machine - zrcadlení
Přispěvatel: karel 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.
Název: Re:Turing Machine - zrcadlení
Přispěvatel: Milan 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
Název: Re:Turing Machine - zrcadlení
Přispěvatel: Květomír 15. 11. 2012, 11:45:52
Děkuji mnohokrát Milane, to je přesně ono  ;)
Název: Re:Turing Machine - zrcadlení
Přispěvatel: wamba 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