Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функция называется примитивно рекурсивной, если может быть получена из исходных числовых функций с помощью применения конечного числа операций суперпозиции и примитивной рекурсии.
Исходными числовыми функциями являются:
1) нуль-функция: o(x) = 0 при каждом x;
2) функция следования: s(x) = x + 1 при каждом x;
3) функция выбора аргументов: I (x1, x2,..., xn) = xm при всех x1, x2,..., xn (m = 1, 2, …, n; n = 1, 2, …).
Получение новых функций из уже имеющихся осуществляется с помощью операций суперпозиции и примитивной рекурсии.
1. Операция суперпозиция (подстановка). Пусть даны числовые функции f(x1, x2,..., xn) и g1(x1,..., xm), g2(x1,..., xm), …, gn(x1,..., xm) и пусть h(x1, x2,..., xn) = f(g1(x1,..., xm), g2(x1,..., xm), …, gn(x1,..., xm)). Тогда будем говорить, что функция h получена с помощью подстановки из функций f(x1, x2,..., xn), g1(x1,..., xm), g2(x1,..., xm), …, gn(x1,..., xm).
Пример 2.1. Доказать, что функция s (x1, x2,..., xn) = xm + 1 примитивно рекурсивна.
Решение. Функция s (x1, x2,..., xn) получается с помощью операции подстановки:
s (x1, x2,..., xn) = s(I (x1, x2,..., xn)) = xm + 1.
Пример 2.2. Доказать, что функция R(x) = 2 примитивно рекурсивна.
Решение. Функция R(x) получается с помощью двух операций подстановки:
R(x) = s(s(o(x))) = s(s(0)) = s(0+1) = 1+1 = 2.
2. Операция примитивная рекурсия. Пусть даны числовые функции g(x1,..., xn) и h(x1,..., xn, xn+1, xn+2) при n ³ 1. Тогда функцию f(x1,..., xn, xn+1) можно определить как:
f(x1,..., xn, 0) = g(x1,..., xn),
f(x1,..., xn, y+1) = h(x1,..., xn, y, f(x1,..., xn, y)).
Данные равенства называются схемой примитивной рекурсии.
При n = 0 схема примитивной рекурсии имеет следующий вид:
f(0) = a,
f(y+1) = g(y,f(y)),
где a – постоянная одноместная функция, равная числу a.
Пример 2.3. Доказать, что функция f+(x,y) = x + y примитивно рекурсивна.
Решение. По схеме примитивной рекурсии получаем:
f+(x,0) = x + 0 = x = I (x);
f+(x,y+1) = x + (y + 1) = (x + y) + 1 = f+(x,y) + 1 = s(f+(x,y)).
Функция называется частично рекурсивной, если может быть получена из исходных числовых функций с помощью применения конечного числа операций суперпозиции, примитивной рекурсии и минимизации.
Определим операцию минимизации, также называемую m-оператором. Пусть дана функция y = f(x1, x2,..., xn). Зафиксируем параметры x1, x2,..., xn. Операция минимизации представляет наименьшее число y, такое что
mf(x1, x2,..., xn) = {f(x1,..., xn-1, y) = xn}.
Частично рекурсивные функции определены на множестве целых неотрицательных чисел.
Упражнения
а) Доказать, что функции примитивно рекурсивны:
1. f2(x) = x + 2.
2. Арифметическое или урезанное вычитание ():
f3(x) =
f4(x,y) =
3. Функция сигнум:
4. Отрицание функции сигнум:
5. f5(x,y) = x × y.
6. f6(x) = x2.
7. f7(x,y) = xy.
8. f8(x,y) = .
9. f9(x,y) = max(x,y).
10. f10(x,y) = min(x,y).
11. Факториал: f!(x) = x!.
б) Доказать, что функции частично рекурсивны:
1. Остаток от деления y на x:
rest(x,y) (здесь rest(x,0) = x).
2. Число делителей числа x:
t(x) (здесь t(0) = 0).
3. Сумма делителей числа x:
s(x) (здесь s(0) = 0).
4. Число простых делителей числа x:
lh(x) (здесь lh(0) = 0).
5. Число простых чисел: p(x).
в) Доказать следующие равенства:
1) ;
2) ;
3) ;
4) .
Дата публикования: 2015-03-26; Прочитано: 1359 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!