Изменения

Перейти к: навигация, поиск

Рекурсивные функции

20 байт добавлено, 21:11, 18 января 2013
Основные определения
== Примитивно рекурсивные функции ==
=== Основные определения ===
Рассмотрим следующие правила преобразования функций.:
* Рассмотрим <tex> k </tex>-местную функцию <tex> f(x_1,\ldots,x_k) </tex> и <tex> k </tex> <tex>n </tex>-местных функций <tex> g_i(x_1,x_2,\ldots,x_n) </tex>. Тогда после преобразования у нас появится <tex> n </tex> - местная функция <tex> F = f(g_1(x_1,\ldots,x_n),\ldots, g_k(x_1,\ldots,x_n)) </tex>.
: Это правило называется правилом подстановки
* Рассмотрим <tex> k </tex>-местную функцию <tex> f </tex> и <tex> k + 2 </tex>-местную функцию <tex> h </tex>. Тогда после преобразования у нас будет <tex> k+1 </tex> -местная функция <tex> g </tex>, которая определена следующим образом:
Благодаря проекторам мы можем делать следующие преобразования:
*В правиле подстановки можно использовать функции с разным числом аргументов. Например, подстановка <tex> F(x,y) = f(g(y),h(x,x,y)) </tex> эквивалентна <tex> F(x,y,z) = f(g(P_{2,2}(x,y)),h(P_{2,1}(x,y),P_{2,1}(x,y),P_{2,2}(x,y))) </tex>, но если <tex> F </tex> не константная функция то все подставляемые функции должны иметь хотя бы один аргумент.
*В рекурсии не обязательно вести индукцию по последнему аргументу. Следует из того что мы можем с помощью проекторов поставить требуемый аргумент на последнее место.
В дальнейшем вместо <tex> P_{n,k}(x_1,\ldots,x_k) </tex> будем писать просто<tex> x_k </tex>, подразумевая требуемое нам <tex> n </tex>.
=== Арифметические операции на примитивно рекурсивных функциях ===
Анонимный участник

Навигация