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

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

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

Применение рекурсивных функций в теории алгоритмов основано на идее нумерации слов в произвольном алфавите последовательными натуральными числами. Наиболее просто такую нумерацию можно осуществить, располагая слова в порядке возрастания их длин, а слова, имеющие одинаковую длину, - в произвольном порядке. После нумерации входных и выходных слов в произвольном алфавитном операторе этот оператор превращается в функцию y = f(x), в которой аргумент х и функция y принимают неотрицательные целочисленные значения. Функция f(x) может быть определена не для всех значений х, а лишь для тех, которые составляют область определения этой функции.

Дадим исторически первую формализацию понятия алгоритма – рекурсивные функции. Долгое время термин "рекурсия" употреблялся математиками, не будучи чётко определённым. Его приблизительный интуитивный смысл можно описать следующим образом. Значение искомой функции f в произвольной точке х (под точкой подразумевается набор значений аргументов) определяется, вообще говоря, через значения этой же функции в других точках h, которые в каком-то смысле предшествуют x.

Само слово "рекурсия" означает возвращение. Рекурсивные функции – это вычислимые функции. Если рассуждать упрощенно, то для рекурсивной функции должен существовать алгоритм, вычисляющий ее значение. По сути дела все вычислимые на компьютерах функции – это рекурсивные функции, но разные компьютерные архитектуры по-разному ведут вычислительные процессы. В теории рекурсивных функций, как и в общем в теории алгоритмов, принято конструктивный подход, основной чертой которого есть то, что все множество исследуемых объектов (здесь - функции) строится из конечного числа начальных объектов (базиса) с помощью простых операций, эффективность выполнения которых достаточно очевидна. Такой способ можно назвать алгебраическим, поскольку построенный с его помощью класс функций порождается путем использования наипростейших (базисных) вычислимых функций и некоторых операций. Этот класс функций получил название рекурсивных функций.

До класса рекурсивных функций почти одновременно пришли К. Гедель и А. Черчь в 1936 г. Но Черчь первым опубликовал свои результаты и выдвинул гипотезу про то, что класс вычислимых функций совпадает с классом рекурсивных функций. Эта гипотеза известна под названием тезиса Черча.

Большой вклад в определение рекурсивных функций был сделан Клини (1937) при решении проблемы формального представления функций, вычислимых алгоритмом. Рекурсивные функции Клини определяется на множестве натуральных чисел. При формальном определении рекурсивные функции впервые были найдены способы построения (конструирования) всех возможных функций, вычислимых алгоритмами. Слова «всех возможных функций» должны пониматься так: если кто-то придумал некоторую (очень сложную) функцию, вычислимую «механическим способом» некоторым процессором (например, человеком), то такая функция может быть записана в виде формальной схемы по правилам рекурсивных функций. Все механизмы конструирования функций, открытые Клини, универсальны и могут быть перенесены на функции любой природы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]