0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 18
|
|
1 | |
Машина Тьюринга. Перенос нуля. Реализировать на С++22.10.2012, 23:17. Показов 12536. Ответов 5
Метки нет (Все метки)
0
|
22.10.2012, 23:17 | |
Ответы с готовыми решениями:
5
Машина Тьюринга, отнимают от числа число 5, если получается меньше нуля, тогда добавляют 5 Машина поста и машина тьюринга: необходимо написать алгоритм к данному изображению Сложение четырех целых без знака (Машина Поста), Троичное вычитание "-1" (Машина Тьюринга). Машина Поста и машина Тьюринга |
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 18
|
||||||
24.10.2012, 22:57 [ТС] | 2 | |||||
Не работает, исправьте, кто может...
0
|
284 / 157 / 30
Регистрация: 22.09.2012
Сообщений: 283
|
||||||
24.10.2012, 23:48 | 3 | |||||
Не очень понял что у вас в задании. Могу привести пример примитивной реализации машины Тьюринга, вы для нее можете попробовать задать правила для своего задания. На этом примере я реализовал машину Тьюринга, которая заменяет 0 на 1 и наоборот. Могут быть баги, сделал только что и тестил только на этом примере:
1
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 18
|
|
25.10.2012, 11:03 [ТС] | 4 |
doctor_lecter, нужен перенос нуля. Например ввели слово 0010, после обработки командами МТ на выходе имеем 0100. Было 0111100, стало 0011110. Вот впринципе и все
Дело в том, что тот набор команд 100% правильный (во втором посте), наверняка закодил неправильно...
0
|
284 / 157 / 30
Регистрация: 22.09.2012
Сообщений: 283
|
||||||
25.10.2012, 11:30 | 5 | |||||
Обычно набор команд МТ имеет вид: Входной символ|состояние -> Выходной символ|Состояние|Направление, а у вас после -> идет Состояние и Либо выходной символ, либо направление. Это в принципе тоже правильно, просто получится менее компактно.
Я правильно понял что входное слово имеет такой вид: 000001..{тут не может быть 0}...10000 Тогда функцию main можно написать так:
0
|
0 / 0 / 2
Регистрация: 16.11.2013
Сообщений: 59
|
||||||
02.06.2014, 21:26 | 6 | |||||
Подскажите, пожалуйста, в чем ошибка. По этому примеру сделала МТ, которая выполняет умножение 2 чисел в унарной системе. Пишет, что для определенного символа правила, а по алфавиту все правильно введено.
Вот алфавит: q0*→q0R q4a→q4aR q01→q0R q4=→q4=R q0×→q1×R q41→q41R q11→q2aR q4*→q51R q21→q21L q5*→q2*L q2a→q2aL q6a→q61R q2=→q2=L q6×→q7×R q2×→q3×L q7a→q7aR q31 → q4aR q71→q2aR q3a→q3aL q7=→q8=L q3*→q6*R q8a→q81L q4×→q4×R q8×→q9H А вот код программы:
0
|
02.06.2014, 21:26 | |
02.06.2014, 21:26 | |
Помогаю со студенческими работами здесь
6
Машина Тьюринга Машина Тьюринга машина Тьюринга Машина Тьюринга Машина Тьюринга Машина Тьюринга Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |