Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 15:34, реферат
Целью нашей работы является рассмотрение основных понятий, связанных с рекурсией и возможностей использования рекурсии для решения задач.
Задачами реферата являются:
Рассмотреть понятия «рекурсия», «алгоритм», «рекурсивный алгоритм».
Выявить преимущества и недостатки рекурсивного алгоритма.
Рассмотреть примеры задач с рекурсивным алгоритмом.
Если пользователь ввел число больше единицы, то выполняется цикл, в теле которого на каждой итерации значение переменной factorial умножается на следующее натуральное число (переменную i).
Программа на языке Паскаль:
Program fac;
Uses crt;
Var
factorial: longint;
n, i:byte;
Begin clrscr;
write(‘n=’);
readln (n);
factorial:=1;
for i:=2 to n do
factorial:=factorial*i;
writeln (‘n!=’, factorial);
readln;
end.
Задача: Вывести на экран ряд чисел Фибоначчи, состоящий из n элементов.
Решение: Числа Фибоначчи – это элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих.
Описание переменных:
n – количество элементов ряда;
a, b – значения двух последних элементов ряда;
c – буферная («запасная») переменная;
i – счетчик.
Алгоритм решения задачи:
Программа на языке Паскаль:
Program chisla;
Uses crt;
Var
a, b, c, i, n: integer;
begin clrscr;
write(‘n=’);
readln(n);
a:=0;
write(a,’ ’);
b:=1;
write(b, ‘ ’);
for i:=3 to n do begin
write(a+b, ‘ ‘);
c:=b;
b:=a+b;
a:=c;
end;
readln
end.
На основании проведенного исследования можно сделать несколько выводов:
Рекурсия отражает черту абстрактного мышления, проявляющуюся в самых различных приложениях (в математике, синтаксическом анализе и трансляции, древовидной сортировке и обработке данных с динамической структурой, шахматных задачах и т.д.). именно в задачах такого рода лучше применять рекурсивные алгоритмы, так как они, избавляют от необходимости последовательного описания процессов, к тому же, практически все действующие языки программирования поддерживают рекурсию.
Но следует сказать, что всегда полезно подумать о замене рекурсии на циклические алгоритмы. Однако в некоторых случаях решение задачи без рекурсии может быть чрезвычайно сложным и прирост производительности не будет строить потраченных усилий.
Информация о работе Рекурсивные алгоритмы (преимущества и недостатки)