Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МодСистЛЕКЦ / Рекурствные функции.doc
Скачиваний:
16
Добавлен:
17.04.2015
Размер:
129.54 Кб
Скачать

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

В математике введено понятие функция.

Рассмотрим частный класс функций. К этому классу отнесем числовые функции, которые могут принимать только целые неотрицательные значения Независимые переменные этих функций, т.е. аргументы тоже могут быть натуральными числами.

В данном множестве функций выделим подмножество так называемых рекурсивных функций.

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

Следующие функции назовем простейшими рекурсивными функциями.

Функции любого числа независимых переменных, тождественно равные нулю. Их обозначают φ n , где n – число аргументов. Например, y = φn (x1, x2 , , xn). Функции подобного рода принимают значение 0 при любой совокупности значений аргументов. Например, φ n (7, 12, 125) = 0.

Тождественные функции любого числа независимых переменных. Их обозначают ψ n+i , где n – число аргументов, а i – номер одного из аргументов. Значением функции считается значение i-го независимого переменного. Например, ψ 3+2 (5,8,0) = 0.

Функции следования (иначе – получения последователя) одного независимого переменного. Обозначение – λ. Функция принимает значение, равное значению аргумента, увеличенного на 1: λ(5)= 6.

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

Оператор подстановки (суперпозиции).Будем говорить, что функция φ n (x1, x2 , , xn) получается с помощью подстановки, если в качестве независимых переменных принять какие-либо простейшие рекурсивные функции. Например, если принять, что x= λ(x), то получим функцию Ф(х)= λ (λ(х)): Ф(5)=7.

Оператор рекурсии. Обозначим его буквой R. Тогда можем записать f::= R [f 1 , f 2 , x, (y)].

Здесь.

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

Оператор построения по первому нулю. Обозначают его μ :

f::= μ[f 1;(x)]

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

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

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

Этот тезис можно перенести и на алгоритмы.

Форма Колмогорова.

Машина Тьюринга.

Нормальны алгорифмы Маркова.