• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Maszyna Turinga

Object Storage Arubacloud
+1 głos
968 wizyt
pytanie zadane 6 grudnia 2016 w Algorytmy przez Josi Nowicjusz (190 p.)
Jak za pomocą maszyny Turinga przesunąć cyklicznie w lewo znaki. Dla przykładu:

100111101 --> 001111011. Ma ktoś pomysł na algorytm do tego zadania?

2 odpowiedzi

+1 głos
odpowiedź 6 grudnia 2016 przez CzikaCarry Szeryf (75,340 p.)
No to możesz zapisać to jako tablicę charów o rozmiarze 1 większym niż długość liczby, z pierwszego elementu tablicy wyjąć cyfrę, i wstawić do ostatniego, pustego elementu tablicy, a następnie wyświetlić tą tablicę.
komentarz 6 grudnia 2016 przez Josi Nowicjusz (190 p.)
Bardziej zależy mi na algorytmie. Potrzebuje go użyć do zapisu w maszynie Turinga.
komentarz 7 grudnia 2016 przez CzikaCarry Szeryf (75,340 p.)

No ale to co napisałem dla Ciebie to nie jest algorytm?

wyobraź sobie, że chcesz użyć algorytmu na takim przykładzie:

załóżmy, że każda przestrzeń oddzielona znakiem jest komórką w tablicy charów.

Krok 1: zapisz liczbę do tablicy charów o wielkości o jeden większej od długości liczby:

|1|0|1|1|1|0|0| |

Krok drugi: przemieść pierwszą liczbę do ostatniego elementu tablicy:

|1|0|1|1|1|0|0|1|

W wyniku czego powstaje coś takiego:

| |0|1|1|1|0|0|1|

Teraz tylko wystarczy wyświetlić tą tablicę. 

Jeśli sądzisz, że ktoś tu poda Ci gotowy kod, to jesteś w błędzie.

 

                                                                                                                    

komentarz 7 grudnia 2016 przez Josi Nowicjusz (190 p.)
Oczywiście nie chciałem gotowego kodu, tylko pomysł jak to rozwiązać. Dzięki za odpowiedź!
0 głosów
odpowiedź 6 grudnia 2016 przez erx700 Gaduła (3,430 p.)
Począwszy od prawej strony wszystko przesunąć o jeden w lewo (to chyba proste), a następnie gdy się dojdzie do elementu pustego, cofnąć się do znaku i "pamiętając" w swoim stanie znak przesunąć znak na pierwsze pole. Tzn trzeba mieć osobną gałąź stanów do przesuwania jedynki na pierwsze pole i osobną gałąź stanów na przesuwanie zera.
komentarz 6 grudnia 2016 przez Josi Nowicjusz (190 p.)
Właśnie nie mam pomysłu jak ustawić ostatni znak na początek. Po przejściu przez cały ciąg znaków musiałbym wrócić na początek z zapamiętanym ostatnim znakiem. Pytanie, jak to zrobić?
komentarz 7 grudnia 2016 przez erx700 Gaduła (3,430 p.)
Po prostu musisz iść cały czas w prawo nic nie zmieniając, a na końcu wstawić znak zapamiętany w stanie. Kluczowe jest abyś zrozumiał koncepcje zapamiętywania w stanie. Jak już wcześniej tłumaczyłem musisz utworzyć specjalną gałąź stanów dla przenoszenia 1 i osobną gałąź dla przenoszenia 0. Fizycznie tych liczb nie masz zapamiętanych ale masz osobną gałąź dla ich przenoszenia.

Podobne pytania

0 głosów
1 odpowiedź 970 wizyt
pytanie zadane 22 kwietnia 2019 w Inne języki przez piotr99511 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 599 wizyt
pytanie zadane 8 lipca 2016 w Inne języki przez codeobiect Początkujący (480 p.)
0 głosów
0 odpowiedzi 461 wizyt
pytanie zadane 14 grudnia 2020 w Inne języki przez Metarinda Użytkownik (740 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...