Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Частично рекурсивные функции



Функция называется примитивно рекурсивной, если может быть получена из исходных числовых функций с помощью применения конечного числа операций суперпозиции и примитивной рекурсии.

Исходными числовыми функциями являются:

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...