Задачи.
Используя элементарные машины и операции над машинами, постройте: а) машину Тьюринга, которая по записи набора чисел x1, х2,..., хn на ленте выдает в качестве результата набор чисел x1, х2,..., хn, 2, воспринимаемый в стандартном положении; Решение: С◦A◦A б) машину Тьюринга, которая по записи числа на ленте в качестве результата выдает число, увеличенное на единицу и записанное через одну пустую ячейку от данного (иными словами, машину, вычисляющую функцию прибавления единицы f(a) = = а+1). Построить машину Тьюринга означает построить программу машины, а затем проверить, ту ли машину построили, имитируя ее работу для конкретных записей на ленте. При составлении программ для реальных вычислительных машин эту проверку называют отладкой программы. Решение: Какие операции выполняют машины: а) б) R2. Решение: Переход вправо через одно число; в) Rk, k³1. Решение: Переход вправо через k чисел; г) Lk, k³1 Решение: Переход влево через k чисел; д) С°А5 Решение: Запись 5 справа от текущего числа; е) T1°A4 Решение: Выдать число, увеличенное на четыре и записанное через одну пустую ячейку от данного. Постройте машину Тьюринга Т2, которая по записи набора чисел x1, х на ленте в качестве результата записывает справа от набора через одну пустую ячейку первое число этого набора. Решение: Составьте программу машины: а) С°А3; б) Т1°А4. Составьте программу машины Тьюринга Тx+y, которая по записи набора чисел х, у выдает запись числа, являющегося их суммой, т. е. вычисляющей функцию S(x, y) = x+y. Решение:
|