Алфавит: 1, λ
Состояния: q0
На ленте записана последовательность из единиц. Каретка находится над одной из цифр последовательности.
Задача: написать алгоритм, перемещающий каретку в ячейку, расположенную непосредственно справа от числа.
q0 1 -> q0 1 R
q0 λ -> q0 λ S
Алфавит: 1, λ
На ленте записана последовательность из единиц (унарная запись числа). Каретка над одной из цифр.
Задача: алгоритм, увеличивающий число на единицу.
q0 1 -> q0 1 R
q0 λ -> q0 1 S
Алфавит: 1, λ
На ленте — унарное число. Каретка над одной из единиц.
Задача: алгоритм, уменьшающий число на единицу.
q0 1 -> q0 1 R
q0 λ -> q1 λ L
q1 1 -> q1 λ S
Алфавит: 1, λ
На ленте — унарное число. Каретка где-то справа от последовательности.
Задача: алгоритм, стирающий число. Машина должна остановиться.
q0 λ -> q0 λ L
q0 1 -> q1 λ L
q1 1 -> q1 λ L
q1 λ -> q1 λ S
Алфавит: 1, λ
На ленте записана последовательность из единиц. Каретка находится где-то справа от последовательности.
Задача: написать алгоритм, перемещающий каретку в начало числа.
q0 1 -> q1 1 L
q0 λ -> q0 λ L
q1 1 -> q1 1 L
q1 λ -> q2 λ R
q2 1 -> q2 1 S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то слева от последовательности.
Задача: переместить каретку к концу числа.
q0 0 -> q1 0 R
q0 1 -> q1 1 R
q0 λ -> q0 λ R
q1 0 -> q1 0 R
q1 1 -> q1 1 R
q1 λ -> q2 λ L
q2 1 -> q2 1 S
q2 0 -> q2 0 S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то над последовательностью.
Задача: алгоритм умножения числа на 2.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 λ -> q0 0 S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то над последовательностью.
Задача: прибавить 1 в двоичной системе.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 λ -> q1 λ L
q1 0 -> q1 1 S
q1 1 -> q1 0 L
q1 λ -> q1 1 S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то над последовательностью.
Задача: вычесть 1 в двоичной системе.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 λ -> q1 λ L
q1 0 -> q1 1 L
q1 1 -> q1 0 S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то над последовательностью.
Задача: инвертируйте число, т.е. замените все 0 на 1, а 1 на 0.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 λ -> q1 λ L
q1 0 -> q1 1 L
q1 1 -> q1 0 L
q1 λ -> q1 λ S
Алфавит: 0, 1, λ
На ленте — двоичное число. Каретка где-то над последовательностью.
Задача: инвертируйте число, т.е. замените все 0 на 1, а 1 на 0. Если в результате в числе получились незначащие нули в начале числа, их необходимо стереть.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 λ -> q1 λ L
q1 0 -> q1 1 L
q1 1 -> q1 0 L
q1 λ -> q2 λ R
q2 0 -> q2 λ R
q2 1 -> q2 1 S
q2 λ -> q2 λ S
Алфавит: 0, 1, 2, λ
На ленте — троичное число. Каретка где-то слева от последовательности.
Задача: переместить каретку к концу числа.
q0 λ -> q0 λ R
q0 0 -> q1 0 R
q0 1 -> q1 1 R
q0 2 -> q1 2 R
q1 0 -> q1 0 R
q1 1 -> q1 1 R
q1 2 -> q1 2 R
q1 λ -> q2 λ L
q2 0 -> q2 0 S
q2 1 -> q2 1 S
q2 2 -> q2 2 S
Алфавит: 0, 1, 2, λ
На ленте — троичное число. Каретка где-то над последовательностью.
Задача: увеличить число на 1.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 2 -> q0 2 R
q0 λ -> q1 λ L
q1 0 -> q1 1 S
q1 1 -> q1 2 S
q1 2 -> q1 0 L
q1 λ -> q1 1 S
Алфавит: 0, 1, 2, λ
На ленте — троичное число. Каретка где-то над последовательностью.
Задача: уменьшить число на 1.
q0 0 -> q0 0 R
q0 1 -> q0 1 R
q0 2 -> q0 2 R
q0 λ -> q1 λ L
q1 0 -> q1 2 L
q1 1 -> q1 0 S
q1 2 -> q1 1 S