Рекурсивные Алгоритмы Реферат

Рекурсивные Алгоритмы Реферат

Исключением может быть ситуация, когда рекурсивный алгоритм приходится моделировать на языке, в котором рекурсия запрещена. Использование рекурсивных функций в программах на языке C на примере вычисления факториала и чисел Фибоначчи. Реферат предусматривает самостоятельную работу с литературой и. Читать курсовую работу online по теме Рекурсивные алгоритмы. Раздел Информатика, ВТ, телекоммуникации, Компьютеры, Программирование,. Рекурсивные алгоритмы курсовая по программированию и компьютерам скачать бесплатно рекурсия турбо Паскаль алгоритм. Скачать реферат по теме Алгоритм. Это позволит в дальнейшем избегать неточностей или двусмысленностей при описании рекурсивных алгоритмов. Все эти краткие неформальные. Рассматривается использование рекурсии в вынесенном во фразу WITH подзапросе в. Общий алгоритм вычисления фразой WITH таков. В ней рассматриваются основы теории рекурсии и ее использование в области разработки и анализа рекурсивных алгоритмов. U8r40/26372982.gif' alt='Рекурсивные Алгоритмы Реферат' title='Рекурсивные Алгоритмы Реферат' />Рекурсия Википедия. Рекурсивное изображение экрана. Визуальная форма рекурсии страницы Википедии. Реку. Термин рекурсия используется в различных специальных областях знаний  от лингвистики до логики, но наиболее широкое применение находит в математике и информатике. В математике рекурсия имеет отношение к методу определения функций и числовых рядов рекурсивно заданная функция определяет сво значение через обращение к себе самой с другими аргументами. При этом возможно два варианта Конечная рекурсивная функция. Она задатся таким образом, чтобы для любого конечного аргумента за конечное число рекурсивных обращений привести к одному из отдельно определнных частных случаев, вычисляемых без рекурсии. Классический пример рекурсивно определнный факториал целого неотрицательного числа n. Здесь каждое следующее рекурсивное обращение делается с аргументом, меньшим на единицу. Поскольку n, по определению, целое неотрицательное число, через n рекурсивных обращений вычисление функции гарантированно придт к частному случаю 01. Таким образом, несмотря на рекурсивность определения, вычисление функции для любого аргумента из области определения окажется конечным. Бесконечная рекурсивная функция. Она задатся в виде обращения к самой себе во всех случаях по крайней мере, для некоторых из аргументов. Подобным образом могут задаваться бесконечные ряды, бесконечные непрерывные дроби и так далее. Практическое вычисление точного значения здесь, естественно, невозможно, поскольку потребует бесконечного времени. Требуемый результат находится аналитическими методами. Тем не менее, если речь идт не о получении абсолютно точного значения, а о вычислении заданного приближения искомого значения, то тут в некоторых случаях возможно прямое использование рекурсивного определения вычисления по нему ведутся до тех пор, пока необходимая точность не будет достигнута. Примером может служить один из вариантов разложения числа Эйлера e22. Для приближнного вычисления значения e достаточно искусственно ограничить глубину рекурсии некоторым наперд заданным числом и по достижении его использовать вместо fn. Таким образом с помощью конечного выражения представляющего собой совокупность рекуррентной формулы и набора значений для первых n членов ряда может даваться определение бесконечной последовательности. С рекурсией тесно связана математическая индукция она является естественным способом доказательства свойств функций на натуральных числах, рекурсивно заданных через свои меньшие значения. В математике отдельно рассматривается класс так называемых примитивно рекурсивных функций. Определение примитивно рекурсивной функции также рекурсивно, оно задат набор примитивных функций и набор правил функция является примитивно рекурсивной, если она может быть представлена как комбинация примитивно рекурсивных функций, образованная по этим правилам. Примеры рекурсии в математике Am,n. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии. Рекурсивная программа позволяет описать повторяющееся или даже потенциально бесконечное вычисление, причм без явных повторений частей программы и использования циклов. Структурно рекурсивная функция на верхнем уровне всегда представляет собой команду ветвления выбор одной из двух или более альтернатив в зависимости от условия условий, которое в данном случае уместно назвать условием прекращения рекурсии, имеющей две или более альтернативные ветви, из которых хотя бы одна является рекурсивной и хотя бы одна  терминальной. Рекурсивная ветвь выполняется, когда условие прекращения рекурсии ложно, и содержит хотя бы один рекурсивный вызов  прямой или опосредованный вызов функцией самой себя. Терминальная ветвь выполняется, когда условие прекращения рекурсии истинно она возвращает некоторое значение, не выполняя рекурсивного вызова. Правильно написанная рекурсивная функция должна гарантировать, что через конечное число рекурсивных вызовов будет достигнуто выполнение условия прекращения рекурсии, в результате чего цепочка последовательных рекурсивных вызовов прервтся и выполнится возврат. Помимо функций, выполняющих один рекурсивный вызов в каждой рекурсивной ветви, бывают случаи параллельной рекурсии, когда на одной рекурсивной ветви делается два или более рекурсивных вызова. План По Самообразованию Воспитателя Детского Сада По Изо. Параллельная рекурсия типична при обработке сложных структур данных, таких как деревья. Простейший пример параллельно рекурсивной функции  вычисление ряда Фибоначчи, где для получения значения n го члена необходимо вычислить n 1 й и n 2 й. Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов  адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счт этого работает корректно. Оборотной стороной этого довольно простого по структуре механизма является то, что на каждый рекурсивный вызов требуется некоторое количество оперативной памяти компьютера, и при чрезмерно большой глубине рекурсии может наступить переполнение стека вызовов. Вопрос о желательности использования рекурсивных функций в программировании неоднозначен с одной стороны, рекурсивная форма может быть структурно проще и нагляднее, в особенности, когда сам реализуемый алгоритм по сути рекурсивен. Кроме того, в некоторых декларативных или чисто функциональных языках таких как Пролог или Haskell просто нет синтаксических средств для организации циклов, и рекурсия в них  единственный доступный механизм организации повторяющихся вычислений. С другой стороны, обычно рекомендуется избегать рекурсивных программ, которые приводят или в некоторых условиях могут приводить к слишком большой глубине рекурсии. Так, широко распространнный в учебной литературе пример рекурсивного вычисления факториала является, скорее, примером того, как не надо применять рекурсию, так как приводит к достаточно большой глубине рекурсии и имеет очевидную реализацию в виде обычного циклического алгоритма. Имеется специальный тип рекурсии, называемый хвостовой рекурсией структура рекурсивного алгоритма такова, что рекурсивный вызов является последней выполняемой операцией в функции, а его результат непосредственно возвращается в качестве результата функции. Интерпретаторы и компиляторы функциональных языков программирования, поддерживающие оптимизацию кода исходного или исполняемого, автоматически преобразуют хвостовую рекурсию к итерации, благодаря чему обеспечивается выполнение алгоритмов с хвостовой рекурсией в ограниченном объме памяти. Такие рекурсивные вычисления, даже если они формально бесконечны например, когда с помощью рекурсии организуется работа командного интерпретатора, принимающего команды пользователя, никогда не приводят к исчерпанию памяти. Однако далеко не всегда стандарты языков программирования чтко определяют, каким именно условиям должна удовлетворять рекурсивная функция, чтобы транслятор гарантированно преобразовал е в итерацию. Одно из редких исключений  язык Scheme диалект языка Lisp, описание которого содержит все необходимые сведения. Теоретически, любую рекурсивную функцию можно заменить циклом и стеком. Однако такая модификация, как правило, бессмысленна, так как приводит лишь к замене автоматического сохранения контекста в стеке вызовов на ручное выполнение тех же операций с тем же расходом памяти. Исключением может быть ситуация, когда рекурсивный алгоритм приходится моделировать на языке, в котором рекурсия запрещена. В отличие от явно циклических программ, для доказательства корректности рекурсивных нет необходимости искусственно вводить инвариант. Аналитическое доказательство корректности рекурсивной функции сводится к методу математической индукции, то есть к доказательству следующих утверждений Корректность использования рекурсивного обращения.

Рекурсивные Алгоритмы Реферат
© 2017