Вариант 2
Задание
Построить машину Тьюринга, переводящую слово на ленте вида
в слово на ленте вида
Идея решения
Затираем первые нулей в начале строки (меняем на ). Среди оставшихся единиц единицы на нечетных местах заменяем на 0.
Решение
Полагаем, что состояние, записанное в первой строке является начальным состоянием
| Состояние | 0 | 1 | F | |
|---|---|---|---|---|
| 0 | ||||
| 0 | ||||
| 1 |
Формат для сайта
{
"alphabet": [
"0",
"1"
],
"states": {
"q0": {
"0": "λ R q0",
"1": "0 R q1",
"comment": "Видим на ленте 0 -> затираем его, сдвигаемся вправо, состояние не меняем. Видим на ленте 1 -> переходим в сотояние q1, заменив 1 на 0 на ленте. Видим на ленте λ - признак того, что строка обработана. Допуск",
"λ": "!"
},
"q1": {
"0": "N",
"1": "1 R q0",
"comment": "Видим на ленте 1 -> оставляем 1, сдвигаемся вправо, переходим в сотояние q0. Видим на ленте λ -> признак того, что строка обработана. Допуск",
"λ": "!"
}
},
"word": "00001111"
}
Формат для сайта
// Вход: строка вида 00...0011...11
// \__n__/\__n__/
// Выход: строка вида 0101...0101
// \____n____/
// Идея: Затираем первые n нулей в начале строки.
// Среди оставшихся n единиц единицы на нечетных местах заменяем на 0.
//
// Решение:
// Множество состояний: Q = {q0, q1, qf}
// Начальное состояние: q0
// Заключительное состояние: qf
// Функция переходов
//| Q | 0 | 1 | _ |
//| - | ------ | ------ | ------- |
//|q0 | q0,λ,> | q1,0,> | qf,_,-) |
//|q1 | | q0,1,> | qf,_,-) |
//|qf | | | |
//
// Сыромятников Дмитрий, КН-401
name: Variant 2
init: q0
accept: qf
q0,0
q0,_,>
q0,1
q1,0,>
q0,_
qf,_,-
q1,1
q0,1,>
q1,_
qf,_,-