Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Elektr_prak_po_DM.docx
Скачиваний:
136
Добавлен:
21.05.2015
Размер:
1.24 Mб
Скачать

3. Составьте программу машины Тьюринга, подсчитывающую число вхождений символа a в слово р в алфавите {a, b, c}.

Решение: пусть начальная конфигурация машины имеет вид q1P.

Надо перевести ее в конфигурацию q0nP, где n – двоичное число, выражающее число вхождений символа a в слово Р в алфавите {a, b, c}.

Внешний алфавит машины: А = {a, b, c, a, 0, 1, , }.

Внутренний алфавит машины: Q = {q0, q1, q2, q3, q4, q5, q6, q7}.

Опишем алгоритм решения задачи в словесной форме:

  1. Слева от слова Р приписываем символы 0 и .

  2. Находим в слове Р вхождение символа a, заменяем его на a, запоминаем, перемещаем головку влево, прибавляем 1 к двоичному числу n («счетчику»).

  3. Повторяем п. 2 до тех пор, пока не пройдем все слово P.

  4. Убираем все штрихи в слове Р.

  5. Устанавливаем головку машины под крайней левой цифрой двоичного числа n и останавливаем машину.

Программа работы машины имеет вид:

q1a q2aL

q1b q2bL

q1c q2cL

q2 q3L

q3 q40R

q40 q40R

q41 q41R

q4 q5R

q5b q5bR

q5c q5cR

q5a q5aR

q5a q6aH

q6b q6bL

q6c q6cL

q6a q6aL

q6 q6L

q60 q41R

q61 q60L

q6 q41L

q5 q7L

q7a q7aL

q7b q7bL

q7c q7cL

q7a q7aL

q7 q7L

q70 q70L

q71 q71L

q7 q0R

Задания для самостоятельного выполнения

5.3.1. Постройте машину Тьюринга,

  1. прибавляющую 1 к натуральному числу n, представленному в троичной системе счисления. Начальная конфигурация: q112…n, где i – троичные цифры 0, 1 или 2;

  2. складывающую натуральные числа m и n в троичной системе счисления. Начальная конфигурация:q11112…1s+2122…2p, заключительная конфигурация: q03132…3q, где 1i, 2j, 3k – троичные цифры 0, 1 или 2;

  3. прибавляющую 1 к натуральному числу n, представленному в шестеричной системе счисления. Начальная конфигурация: q112…s, где i – шестеричные цифры 0, 1, …, 5. (Для сокращения записи программы используйте метасимволы);

  4. вычитающую 1 из натурального числа n > 1, представленного в десятичной системе счисления. Начальная конфигурация: q112…s, где i – десятичные цифры 0, 1, …, 9. (Для сокращения записи программы используйте метасимволы);

  5. складывающую натуральные числа m и n в десятичной системе счисления. Начальная конфигурация: q11112…1s+2122…2p, заключительная конфигурация: q03132…3q, где 1i, 2j, 3k – десятичные цифры 0, 1 , … , 9. (Для сокращения записи программы используйте метасимволы);

  6. вычитающую 1 из натурального числа n > 1, представленного в троичной системе счисления. Начальная конфигурация: q112…n, где i – троичные цифры 0, 1 или 2;

  7. прибавляющую 1 к натуральному числу n, представленному в десятичной системе счисления. Начальная конфигурация: q112…s, где i – десятичные цифры 0, 1, …, 9. (Для сокращения записи программы используйте метасимволы);

  8. складывающую натуральные числа m и n в четвертичной системе счисления. Начальная конфигурация: q11112…1s+2122…2p, заключительная конфигурация: q03132…3q, где 1i, 2j, 3k – четвертичные цифры 0, 1, 2 или 3;

  9. вычитающую 1 из натурального числа n > 1, представленного в пятеричной системе счисления. Начальная конфигурация: q112…n, где i – пятеричные цифры 0, 1, 2, 3 или 4;

  10. прибавляющую 1 к натуральному числу n, представленному в восьмеричной системе счисления. Начальная конфигурация: q112…s, где i – восьмеричные цифры 0, 1, …, 7. (Для сокращения записи программы используйте метасимволы).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]