W związku z tym pytaniem przyszło mi do głowy: jaka jest złożoność czasu w przypadku maszyny Turinga z pojedynczą taśmą do obliczenia długości danych wejściowych? Mówiąc ściślej, powiedzmy, że alfabet na taśmie to , wejściem jest ciąg znaków w ( 0 + 1 ) ∗ otoczony spacjami, maszyna zaczyna się od lewego najbardziej wejściowego symbolu i musi kończyć się na skrajnie lewy symbol łańcucha w ( 0 + 1 ) ∗(ponownie otoczony spacjami), który daje binarną reprezentację długości wejściowej. Można to również traktować jako problem konwersji liczby z jedności na binarną.
Łatwo jest rozwiązać to na maszynie z dwiema taśmami lub maszyną z dwiema głowicami w czasie liniowym (wystarczy zeskanować dane wejściowe jedną głowicą, używając drugiej głowicy do wielokrotnego zwiększania licznika; zwiększanie jest operacją polegającą na stałym zamortyzowanym czasie). Ale rozwiązania pojedynczej głowicy, które mogę wymyślić, to tylko (np. Wielokrotnie zwiększaj licznik, a następnie przesuwaj go o jedną pozycję wzdłuż taśmy). Czy istnieje pasująca dolna granica?
Próbowałem kilka wyszukiwań, ale frazy takie jak „jedna głowa” i „długość wejściowa” są tak powszechne, że utrudniają wyszukiwanie w literaturze znanych wyników tego problemu.
źródło
Odpowiedzi:
źródło