- •Министерство образования и науки украины
- •Рассмотрено на заседании кафедры
- •Тема курсовой работы: «Построение аналитических моделей алгоритмов и оценка их сложности
- •4. Реализовать функцию над числами в унарном коде.
- •5. Реализовать функцию над числами в унарном коде.
- •6. Реализовать функцию над числами в унарном коде.
- •Приложение а Техническое задание Приложение б Руководство пользователя.
4. Реализовать функцию над числами в унарном коде.
5. Реализовать функцию над числами в унарном коде.
6. Реализовать функцию над числами в унарном коде.
7. Реализовать функцию выбор аргумента
над числами в унарном коде.
8. Реализовать вычисление предиката X>Y в унарном коде с сохранением (восстановлением) исходных данных.
9. Реализовать вычисление предиката X=Y в унарном коде с сохранением (восстановлением) исходных данных.
10. Реализовать вычисление предиката “x - четное число” в двоичном коде.
11. Реализовать алгоритм в алфавите
,
меняющий местами первую и последнюю
буквы слова.
12. Реализовать алгоритм над алфавитом , меняющий местами первый ноль и последнюю единицу.
13. Реализовать операцию копирование в
алфавите
,
то есть получить из слова
слово
.
14. Реализовать алгоритм над алфавитом , который выдает единицу, если в исходном слове только парные нули и ноль в противном случае.
15. Реализовать алгоритм в алфавите , который переставляет буквы в слове так, чтобы сначала шли все нули, потом – единицы.
16. Реализовать алгоритм, конструирующий
в алфавите
слова вида
,
где
-
произвольное натуральное число.
17. Реализовать алгоритм, реализующий функцию циклический сдвиг двоичного числа на одну ячейку.
18. Реализовать алгоритм в алфавите
,
анализирующий последовательность цифр
в слове и выдающий «+», если цифры образуют
неубывающую последовательность, и «–»
в противном случае.
19. Реализовать выделение подстроки,
заключенной между двумя символами
(первая пара) в алфавите
.
Если последовательность
отсутствует на ленте, стереть все.
20. В слове
в алфавите
стереть все, кроме
.
Если такой последовательности нет, все
стереть.
21. Реализовать алгоритм над алфавитом , переставляющий буквы в обратном порядке.
22. Реализовать предиката «в слове
в алфавите
есть
пара букв ‘yy’ » .
23. Реализовать алгоритм в алфавите
,
производящий в слове
алфавита замену всех вхождений буквы
а на букву б.
24. Реализовать алгоритм в алфавите
для
вычисления логической функции
,
где x,y,z
принимают значение 0 или 1.
25. Реализовать алгоритм в алфавите
для
вычисления логической функции
,
где x,y,z
принимают значение 0 или 1.
Варианты к заданию 2.3
L = {0n1n2n n≥1}
L = {a3n n≥1}
L = {a4n n≥1}
L = {a5n n≥1}
L = {a6n n≥1}
L = {a5nb7n n≥1}
L = {w{0, 1}* │w не содержит 3-х идущих подряд единиц}
L = {w{0, 1}* │w не содержит 2-х идущих подряд нулей}
L = {w{0, 1}* │w не содержит комбинации ‘0101’}
L = {w{0, 1}* │w не содержит комбинации ‘1010’}
L = {w{0, 1}* │w не содержит 2-х идущих подряд единиц}
L = {aibjck 1≤i<j<k}
L = {aibjck i=jj=k && i,j,k≥1}
L = {aibjck 1≤i=j & k≥1}
L = {aibjck 1≤i=j & k≥1 & ik}
L = {aibjck 1≤i=k & j≥1}
L = {aibjck 1≤i=k & j≥1 & ij}
L = {an n≥1} {bn n≥1}
L = {ambn m,n≥1}
L = { ambn m,n≥1} {cn n≥1}
L = { wcwR│w{0, 1}*}
L = { wwR│w{0, 1}*}
L = {aibj i≥1 & j>i}
L = {aibj j≥1 & i>j}
L = {aibjck ij & jk & i, j, k ≥1}
L = {aibjck ij & ik & jk& i, j, k ≥1}
L = {aibjck i,j≥1 & k≥max{i,j}}
L = { wcwRcw│w{0, 1}*}
L = { wcwRcwcwR│w{0, 1}*}
L = { ww│w{0, 1}*}
L = { www│w{0, 1}*}
L = { wwww│w{0, 1}*}
L = { wwRw│w{0, 1}*}
L = { wwRwR│w{0, 1}*}
L = { wwRwwR│w{0, 1}*}
L = {w{a, b}* │w содержит ровно вдвое больше символов a, чем b}
L = {w{a, b, c}* │w состоит из одинакового числа символов a,b и c}
L = {(ab)ncn(dd)n n≥1}
L = {w{a, b}* │w состоит из одинакового числа символов a и b}
L = {anbm n≤m≤2n}
L = { vcw│w, v{0, 1}* & vw}
L = { w1cw2c... cwmccwiR│1≤i≤m & 1≤j≤m (wj{0, 1}*)}
L = { w1cw2cw2Rcw1R│w1w2{a, b}*) & w1 w2}
L = { a│w│bw│w{a, b}*)}
L = { vcwcv│w, v{0, 1}* & vw}
L = { vcwcwR│w, v{0, 1}* & vw}
L = {w{0, 1}* │w состоит из одинакового числа нулей и единиц}
L = { vcwcvR│w, v{0, 1}* & vw}
L = {anbncn(dab)n n≥1}
L = {anbmcn m, n≥1 & nm}
L = {anbmcn m, n≥1 & n≤m≤2n}
L = { a│w│b│w│-1cw│w{a, b}* & │w│>=1}
L = { a│w│b│w│/2cw│w{a, b}*)}
L = {0n1n02n12n n≥1}
L = {(01)nc(10)n n≥1}
L = {0n1m m,n≥1 & mn & m3n}
L = {1n012n013n n≥1}
L = {(1010)nc(0101)n n≥1}
L = {(abcd)n(acdb)n n≥1}
L = {w{0, 1}* │если w содержит четное количество нулей, то единиц в w должно быть в два раза больше, чем нулей}
L = {w{0, 1}* │если w содержит нечетное количество единиц, то нуль в w должен встретиться 1 раз}
L = { w1сw1Rсw2сw2R│w1, w2{0, 1}*}
L = { w1сw2сw1Rсw2R│w1, w2{0, 1}*}
L = { wcwRcv│w, v{0, 1}* & vw & │w│=2n & │v│=3n & n≥0}
L = { wcvcvR│w, v{0, 1}* & vw & │w│=│v│=2n & n≥0}
L = { wcv│w, v{0, 1}* & vw & │w│=2k & │v│=2n & k, n≥0}
L = { wcv│w, v{0, 1}* & │w│=2k & │v│=2n+1 & kn & k, n≥0}
L = {0n1m m,n≥1 & m4n & mn & m3n}
L = {anb2nc4n n≥1}
L = {(ad)n(cb)2n n≥1}
L = {w{0, 1, 2}* │w должно содержать одинаковое количество нулей и единиц, а двоек должно быть в два раза больше}
L = {anbc5nab3n n≥1}
L = { vcvRcwcvR│w, v{0, 1}* & vw & │w│=│v│=2n+1 & n≥0}
L = { a│w│b2│w│cw│w{a, b}*)}
L = { wwRwR│w{a, b, c}*}
L = {w{0, 1, 2}* │w должно содержать в два раза больше единиц, чем нулей, а двоек - в три раза больше, чем единиц}
L = {aibjck i, k≥1 & j=min(i, k) }
L = {aibjck i, k≥1 & j=max(i, k) }
L = {aibjck j, k≥1 & i=min(j, k) }
L = {aibjck j, k≥1 & i=max(j, k) }
L = {aibjck i, j≥1 & k=min(i, j) }
L = {aibjck i, j≥1 & k=max(i, j) }
L = {(ad)n(cb)n n≥1}
L = {(ad)2n(cb)n n≥1}
L = {aibjck i>j>k ≥1}
L = {(ab)n(ba)n n≥1}
L = {w{0, 1, 2}* │w должно содержать в два раза больше единиц, чем нулей, а двоек - в три раза больше, чем нулей}
L = { wwRw│w{a, b, c}*}
L = { www│w{a, b, c}*}
L = { wwR│w{a, b, c}*}
L = { ww│w{a, b, c}*}
L = { wwww│w{a, b, c}*}
L = { wwRwwR│w{a, b, c}*}
L = { wwRww│w{a, b, c}*}
L = { wwRwRwR│w{a, b, c}*}
L = { wwwRw│w{a, b, c}*}
L = { wwwwR│w{a, b, c}*}
L = {anb4nc2n n≥1}
L = {anb5nc3n n≥1}
L = {anb3nc2n n≥1}
Индивидуальные варианты к заданию №3
1. Реализовать алгоритм, выполняющий
замену в слове
в алфавите
каждого символа
на символ
.
2. Реализовать алгоритм, выполняющий
перестановку в слове
в алфавите
букв таким образом, чтобы сначала стояли
все нули, а затем все единицы.
3. Составить нормальный алгоритм,
преобразующий исходную строку в алфавите
в строку, в которой буквы расположены
в алфавитном порядке.
4. Реализовать алгоритм, выполняющий над числами в унарном коде.
5. Реализовать алгоритм, выполняющий над числами в унарном коде.
6. Реализовать алгоритм, выполняющий над числами в унарном коде.
7. Реализовать алгоритм, вычисляющий арифметическое вычитание в унарном коде.
8. Реализовать функцию выбор аргумента над числами в унарном коде.
9. Реализовать вычисление предиката X=Y в унарном коде с сохранением (восстановлением) исходных данных.
10. Реализовать вычисление предиката X>Y в унарном коде с сохранением (восстановлением) исходных данных.
11. Реализовать алгоритм в алфавите , меняющий местами первую и последнюю буквы слова.
12. Реализовать алгоритм над алфавитом , меняющий местами первый ноль и последнюю единицу.
13. Реализовать операцию копирование в
алфавите
,
то есть получить из слова
слово
.
14. Реализовать алгоритм над алфавитом , который выдает единицу, если в исходном слове только парные нули и ноль в противном случае.
15. Реализовать алгоритм в алфавите , который переставляет буквы в слове так, чтобы сначала шли все нули, потом – единицы.
16. Реализовать алгоритм над алфавитом
,
исключающий в слове последнюю звездочку.
17. Реализовать алгоритм, реализующий функцию циклический сдвиг двоичного числа на одну ячейку.
18. Реализовать алгоритм в алфавите , анализирующий последовательность цифр в слове и выдающий «+», если цифры образуют неубывающую последовательность, и «–» в противном случае.
19. Реализовать алгоритм над алфавитом
,
который выдает 1, если исходное слово
содержит комбинацию baccd,
и 0 - в противном случае.
20. Реализовать алгоритм, выполняющий следующие действия. В слове в алфавите стереть все, кроме . Если такой последовательности нет, все стереть.
21. Реализовать алгоритм над алфавитом , переставляющий буквы в обратном порядке.
22. Реализовать алгоритм над алфавитом
,
который выдает 1, если в исходном слове
содержатся только парные нули, и 0 - в
противном случае.
23. Реализовать алгоритм над алфавитом
,
который выдает «да», если в исходном
слове четное количество y-ков,
и «нет» в противном случае;
24. Реализовать алгоритм над алфавитом , выдающий в результате столько единиц, сколько нулей в исходном слове.
25. Реализовать алгоритм над алфавитом
,
выделяющий часть слова расположенную
между первой парой звездочек.
СОДЕРЖАНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
Титульный лист
Реферат
Содержание
Введение
1. Описание формальной модели алгоритма на основе рекурсивных функций
2. Описание аналитической модели алгоритма в виде элементарных машин Тьюринга и композиции МТ
3. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга
3.1 Формальное определение машины распознающей Тьюринга
3.2 Протоколы работы машины Тьюринга (на двух словах языка и двух словах, не принадлежащих языку)
3.3 Программная модель машины Тьюринга
3.4 Протоколы работы машины Тьюринга, построенные программно (на двух словах языка и двух словах, не принадлежащих языку)
3.5 Расчет временной сложности (график функции временной сложности)
4. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова
Выводы
Перечень ссылок
