Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программа-минимум семинаров по ДМ.doc
Скачиваний:
1
Добавлен:
08.11.2019
Размер:
215.55 Кб
Скачать

Программа-минимум семинарских занятий по дискретной математике для групп к3-33х

  1. Машина Тьюринга

Договоренности:

  • начальный символ (∂) трогать нельзя, он должен быть строго один;

  • пустых символов (λ) бесконечно много – все незанятые ячейки ленты, и, если такой символ появился, далее слово считается законченным;

  • во всех задачах (если не оговорено) начальное состояние машины Тьюринга: ∂S0входное слово.

    1. Пусть машина Тьюринга задана внешним алфавитом A={λ, a, b, c, d}, где λ – пустой символ, внутренним алфавитом S={S0, S1, S2, S3, S4, Ω}, где Ω – заключительное состояние и совокупностью команд (программой):

S0∂ ∂RS0;

S0aaRS1;

S0bbRS0;

S2adLΩ;

S0ccRS0;

S1dcLS3;

S3adLS4;

S4bcLS2;

S4cdLΩ;

Рассмотреть применение программы данной машины Тьюринга для переработки исходного слова «bcadc». Начальное состояние машины Тьюринга: S0∂bcadc.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце любого слова символ «1».

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова символ, который является первым символом слова.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова символ, который является последним символом слова. Рассмотреть и сравнить два решения:

  1. идем до конца слова, возвращаемся на шаг назад, запоминаем и копируем символ;

  2. идем по слову, постоянно перезаписывая в память считанный только что символ, пока не дойдем до конца слова, где печатаем последний запомненный символ.

    1. Внешний алфавит унарный. Написать программу машины Тьюринга, которая вычисляет функцию S(x)=x+1. Начальное состояние: , конечное состояние: .

    1. Внешний алфавит унарный. Написать программу машины Тьюринга, которая осуществляет вычисление суммы двух чисел. Начальное состояние: , конечное состояние: .

    1. Внешний алфавит унарный. Дано число n (закодировано (n+1)-ой палочкой). Написать программу машины Тьюринга, которая вычисляет функцию:

результат записать вместо входного слова. Внимание: нуль кодируется одной палочкой.

    1. На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая печатает после слова символ «+», если:

  1. в слове содержится только один нуль;

  2. в слове содержится не менее одного нуля;

  3. в слове содержится ровно два нуля.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая заменяет каждый второй нуль на единицу.

    1. Внешний алфавит A={0, 1, 2}. Написать программу машины Тьюринга, которая заменяет все последовательности «102» на «***». Рассмотреть и сравнить два решения:

  1. идем по слову, по ходу меняя состояния, фиксируем нахождение «102», «2» меняем на «*», возвращаемся к «1» заменяем ее и далее исправляем «0», затем перешагиваем через «*» и идем дальше;

  2. идем по слову, по ходу меняя состояния, фиксируем нахождение «102», «2» меняем на «*», назад пока не возвращаемся, идем дальше, когда слово кончится, возвращаемся назад и после каждой встреченной «*», ставим еще «**».

    1. Внешний алфавит унарный. Написать программу машины Тьюринга, которая осуществляет копирование слова после разделителя «*». Начальное состояние: , конечное состояние: .

    2. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в прямом порядке, поставив в конце исходного слова разделитель «*».

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в прямом порядке без всякого разделителя.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в обратном порядке, поставив в конце слова разделитель «*».

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в обратном порядке без всякого разделителя.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая записывает обратную копию вместо исходного слова.

    1. Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова «+», если оно палиндром, или ставит «-», в противном случае.

    1. Внешний алфавит унарный. Написать программу машины Тьюринга, которая вычисляет функцию псевдоразности двух чисел:

Число n кодируется (n+1)-ой палочкой, т. е. нуль кодируется одной палочкой.

Примеры начальных и конечных состояний:

;

.

    1. Внешний алфавит унарный. Дано число n, которое кодируется (n+1)-ой палочкой, т. е. нуль кодируется одной палочкой. Написать программу машины Тьюринга, которая вычисляет функцию f(n)=2n+2, результат записывается вместо входного слова.

    1. На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая ставит в конце исходного слова:

  • символ «+», если в слове больше единиц;

  • символ «-», если в слове больше нулей;

  • символ «=», если в слове содержится одинаковое количество единиц и нулей.

    1. На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая удваивает все буквы в слове.

    1. На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая упорядочивает слово по возрастанию.