Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие по информатике 2 часть.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
724.99 Кб
Скачать

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

Величину F называют функцией, а величины x1, x2,…,xn – аргументами, или независимыми переменными, если известен закон, который для наборов конкретных значений величин x1, x2,…,xn задает определенные значения величины F. При этом для каждого набора допускается только одно значение функции.

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

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

  1. описываются наиболее простые рекурсивные функции, называемые в теории алгоритмов базовыми;

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

К базовым относятся:

    1. функции любого числа независимых переменных, тождественно равные нулю. Их будем обозначать φn, где п - число аргументов. Например:

f=φ1(x1), f=φ2(x1,x2), f=φ3(x1,x2,x3),, f=φn(x1,x2,…,xn).

При этом любой совокупности значений аргументов данной функции ставится в соответствие ее значение 0. Например:

φ1(0)=0, φ2(2,7)=0, φ3(5,45,79)=0, φn(3,45,…,68)=0.

Будем считать, что п может быть равно нулю, т.е. существует функция, не зависящая ни от одного переменного и равная 0. Обозначим ее φ0=0;

    1. тождественные функции любого числа п независимых переменных. Обозначим их ψn,i. Значением такой функции будем считать значение iго независимого переменного. Например: ψ3,2(2,10,23)=10, ψ1,1(36)=36, ψ6,4(23,45,69,12,56,78)=12, а в общем виде ψn,i(x1,x2,…,xi,…,xn)=xi, при этом должны быть выполнены условия 1≤in, n0, i≠0;

    2. функции следования одного независимого переменного. Обозначим их с помощью функционального знака λ. Значением функции λ(х) будем считать число, непосредственно следующее за числом, являющимся значением аргумента. Например, λ(5)=6, λ(57)=58 и т.д. В общем случае операцию получения последующего значения будем обозначать λ(х)=х+1.

Теперь перечислим три оператора:

  1. оператор суперпозиции, или подстановки, позволяет по функции F n аргументов и по функциям f1, f2, …,fn строить новую функцию Φ, такую, что для нее справедливо тождество ΦF(f1, f2, …,fn). Например, если в качестве F принять функцию следования λ(х), а в качестве f1, взять функцию следования λ(у), то с помощью оператора суперпозиции получим новую функцию Θ(у)=λ(λ(у)). Оператор суперпозиции обозначим буквой S и введем знак :=, который читается “по определению есть”. Построение функции Ф из функции F и f1, с помощью оператора суперпозиции будем записывать так : Ф:=S[λ(x), λ(у)]. В частности, для рассмотренного примера можно записать Θ:=S[λ(x), λ(у)];

  2. оператор рекурсии. Этот оператор по двум функциям, одна из которых имеет п-1 независимых переменных (обозначим ее f1), а другая, кроме указанных независимых переменных, имеет еще две переменных, т.е. зависит от п+1 аргументов (обозначим ее f2). Строим функцию п независимых переменных. Для этого обозначим оператор рекурсии буквой R, а его применение запишем с помощью двух условий:

f(0)=f1,

f(х+1)=f2(х,f(х)).

Правила, реализующие эти условия, сформулируем следующим образом:

- значение получаемой функции f для нулевого значения аргумента равно значению исходной функции f1 (п-1)-го независимого аргумента;

- значение определяемой функции f для каждого последующего значения аргумента равно значению второй из заданных функций f2, которая зависит от предыдущего значения аргумента и предыдущего значения определяемой функции;

  1. оператор минимизации который позволяет по заданной функции, зависящей от n+1 аргументов, строить новую функцию от п аргументов. Обозначим оператор минимизации буквой μ, и его применение запишем в виде f:=μ [f1;(x)], где х - исчезающий аргумент. Смысл работы этого оператора в том, что аргументу х последовательно присваиваются значения (начиная с нулевого) до тех пор, пока функция f1 не станет равной нулю. После этого полученное значение аргумента х принимают за значение определяемой функции, соответствующее тем значениям основных аргументов, при которых осуществлялся описанный процесс.

Таким образом, рекурсивными называют базовые функции и любые функции, полученные из базовых, с использованием операторов суперпозиции, рекурсии и минимизации.