https://alistat.eu/online/turingmachinesimulator или https://morphett.info/turing/turing.html
Реализуйте в эмуляторе программу, принимающую на вход унарную запись числа (на ленте записано столько единиц, чему равно это число) и возвращающую унарную запись этого числа, к которому прибавили число 2.
Затем реализуйте в эмуляторе программу, вычисляющую целую часть от деления этого числа на 2. Например, если на ленте записано 11111, то должно остаться 11. А если записано 11, то останется 1.
Другие языки программирования и технологии
Машина Тьюринга. помогите с задачей
В общем очень интересная задачка вот деление на 2
Что касаемо алгоритма + 2
initial qs,
accept finish,
qs _ finish _ r, // нет данных 0/2 = 0
qs 1 q1 i r, // отмечаем начало диапазона данных буквой i
q0 1 q1 1 r, //на четных позициях оставляем 1
q1 1 q0 _ r, //на нечетных позициях ставим пробел
//четный случай
q0 _ ql _ l, // дошли до конца ввода вовращаемся к i
//нечетный случай
q1 _ qd _ l, // дошли до конца ввода удаляем последнюю 1
qd 1 ql _ l,
qd i finish _ l, // случай 1/2 = 0 по условию деление целочисленое
//двигаемеся влево пока не найдем i
ql _ ql _ l,
ql 1 ql 1 l,
ql i qf 1 l,
qf _ s0 _ r, // переходим к алгоритму уплотнения
// алгоритм уплотнения пробелов
s0 1 s0 1 r,
s0 _ s1 1 r, //если нашли пробел меняем его на 1
// Два подряд пробела это конец строки
s1 _ dt _ l, //проверяем если нашли второй пробел подряд и поворачиваем обратно
s1 1 s0 _ r, //мы сместили эту 1 ку левее, удаляем ее из этой позиции
dt 1 sf _ l, // так как нашли окончание ввода значит предыдущая поставленная 1 ка лишняя
sf 1 finish 1 l, // если две подряд 1 встретились сразу после разворота заканчиваем уплотнение
sf _ s3 _ l, если найден пробел просто движемся до двух подряд единиц
s3 _ s4 _ l, // невозможный случай можно удалить.
s3 1 s4 1 l, // за пробелом следует 1
s4 1 s0 1 r, // если две 1 1 подряд мы дошли до начала уполтнения и разворачиваемся вперед
s4 _ s3 _ l, // за 1 следует _
Чтобы машина скушала алгоритм выше коментарии должны быть на отдельной строке и последний коммент нужно удалить. Что касаемо алгоритма + 2
initial q1,
accept q0,
q1 1 q1 1 r,
q1 _ q2 1 r,
q2 _ q0 1 r,
Похожие вопросы
- Задача по машине Тьюринга.
- Машина Тьюринга. Решите задачу пожалуйста!!
- Помогите решить задание с машиной тьюринга
- Алгоритм на машине Тьюринга
- Машина Тьюринга.Написать программу
- Машине Тьюринга и Машины Поста нужна помощь с решением
- Алгоритм для машины Тьюринга для переноса числа влево
- Помогите решить задачу на Турбо паскале
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачу.