Разбор: программа вычитания единицы
| |
λ |
0 |
1 |
| q0 |
λ, L, q1 |
|
|
| q1 |
λ, S, q1 |
1, L, q1 |
0, S, q1 |
Головка стоит справа от записи, на пустой клетке. Команда λ, L, q1 заводит её на младший разряд.
Дальше в q1 всего два правила:
- увидела
0 — записала 1, поехала влево;
- увидела
1 — записала 0 и встала.
Это заём при вычитании: хвостовые нули становятся единицами, ближайшая единица — нулём. При исходном положении головки в конце записи числа, происходит вычитание единицы.
Микропаттерн: 0→1,L и 1→0,S = вычесть единицу.
На ленте 1010111, то есть 87. Проверка: 88 − 1 = 87.