Рекурсивные функции
В математике введено понятие функция.
Рассмотрим частный класс функций. К этому классу отнесем числовые функции, которые могут принимать только целые неотрицательные значения Независимые переменные этих функций, т.е. аргументы тоже могут быть натуральными числами.
В данном множестве функций выделим подмножество так называемых рекурсивных функций.
Совокупность последних построим следующим образом. Сначала построим простейшие рекурсивные функции, которые назовем базовыми. Затем введем три оператора, с помощью которых можно будет строить новые функции исходя из простейших рекурсивных функций. Эти операторы по существу будут алгоритмами в интуитивном смысле.
Следующие функции назовем простейшими рекурсивными функциями.
Функции любого числа независимых переменных, тождественно равные нулю. Их обозначают φ 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 не станет в первый раз равной нулю.
Функцию называют примитивно рекурсивной, если она получена с помощью операторов подстановки и рекурсии. Функцию называют частично рекурсивной, если она может быть получена с помощью операторов подстановки, рекурсии и оператора построения по первому нулю.
Оказывается, что многие известные нам элементарные функции являются рекурсивными. На этом основании Черч выдвинул гипотезу: Какова бы не была вычислимая неотрицательная целочисленная функция от неотрицательных целочисленных аргументов, существует тождественно равная уй рекурсивная функция.
Этот тезис можно перенести и на алгоритмы.
Форма Колмогорова.
Машина Тьюринга.
Нормальны алгорифмы Маркова.