Я пытаюсь выяснить следующее задание и могу использовать вашу помощь, потому что я застрял. Я не стремлюсь к прямому ответу (но я не против, если кто-то способен спроектировать всю машину). Меня больше интересует утверждение / опровержение моих мыслей и указание в правильных направлениях.
Задание:
Построение машины Тьюринга, принимающей словав формате 1^k, where k=n^2 n is integer
. В основном это принимает те слова, где вы можете расположить их в квадрат. Например, первые три приемлемых слова будут:
1Δ; 1111Δ; 111111111Δ;
, которые можно упорядочить в квадраты, подобные этому:
1
11
11
111
111
111
Мои мысли:
Если я получаю «1» только один раз, это должно быть принято.
Tape: 1Δ; k=1, n=1 and k=n^2
Так что я предполагаю, что после одного «1» я нахожусь в состоянии «СТОП» (давайте назовем это состояние A ), если на ленте нет другого символа.
Следующим приемлемым словом является следующий квадрат, который мы можем записать в формуле следующим образом:
(n+1)^2 That equals: n^2 + 2*n + 1
Разница между двумя последовательными квадратами составляет (2*n + 1)
Итак, если мое предположение верно, если я в состоянии A Мне нужно как-то проверить, получаю ли я(2*n + 1)
раз «1» на ленте, и если это вернет меня в состояние A , оно будет правильно принято. Все остальное должно быть отклонено.
Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как считать (2*n + 1)
раз «1» на ленте.
Также я должен найти решение, используя только одну ленту. Подсказка заключается в том, что он должен заканчиваться в форме 111#111111111Δ
, где сумма единиц в левой части равна " k ", а в правой части равна " n ". К сожалению, этот намек совсем не помог мне. Я бы сказал, что мне стало хуже.