
теория вычислительной сложности / up3
.pdfЗадание 3.1:
Показать W HILE-вычислимость следующих функций
1.f(n) = 2n
2.dlog ne с dlog ne = min{m N | n ≤ 2m}
3. log n с log n = min |
m |
| |
n |
≤ |
2 |
2 . . 2 m-раз |
{ |
|
|
|
} |
Задание 3.2:
Задайте W HILE-программы для функций f1, f2, f3, f4, f5 : N → N со следующими свойствами
1.f1 всюду определена.
2.f2 всюду неопределена.
3.f3 не всюду определена и неопределена только для конечного множества аргументов.
4.f4 определена для бесконечного множества аргументов и неопределена для бесконечного множества аргументов.
5.f5 не всюду определена, а f5−1 всюду определена.
Задание 3.3:
Пусть f : N → N - W HILE-вычислимая иньективная всюду определенная функция. Покажите, что обратная к f функция f−1 также W HILEвычислима.
Верно ли аналогичное высказывание для LOOP -вычислимых функций?
Задание 3.4:
Взаимно-однозначная Функция r2 : N × N → N: r2(x, y) = 12 ((x + y)2 + x+3y) и соответствующие обратные функции - известны из предыдущих заданий.
1
Стек - это список [a0, a1, . . . , ak] произвольных натуральных чисел. Для него определены функции empty, top, push и pop:
•empty определяет пуст ли стек: т.е. empty([ ]) = 1 и empty([a0, . . . , ak]) = 0;
•top выдает верхний элемент непустого стека: top([a0, a1, . . . , ak]) = ak;
•push кладет новое число в стек: push([a0, a1, . . . , ak], b) = [a0, a1, . . . , ak, b];
•pop удаляет верхнее число из непустого стека: pop([a0, a1, . . . , ak]) = [a0, a1, . . . , ak−1];
Используя функцию r2, взаимно-однозначно закодируйте стеки натуральными числами ? Определите также функции, соответствующие empty, top, pop и push на натуральных числах.
Задание 3.5:
W HILE0–программы - это W HILE-программы без LOOP -циклов. Существуют ли W HILE-вычислимые, но не W HILE0-вычислимые функции?
2