Вопрос Вопрос к программистам про рекурсию.

Регистрация
13 Дек 2012
Сообщения
108
Репутация
0
Спасибо
0
Монет
0
В чëм смысл рекурсии?

Иногда он возвращает число (когда правильно), но иногда возвращает 1.

Но базовый случай ведь рекурсии срабатывает всегда.

Почему в одном случае мы получаем значение, а в другом 1?

Если фибоначи и факториал делается не сложно, то как понять сложную рекурсию? По типу:



Рекурсивное вычисление определителя матрицы методом разложения по строке или столбцу.



Рекурсивное вычисление обратной матрицы методом алгебраических дополнений.



Рекурсивный алгоритм поиска кратчайшего пути в графе (например, алгоритм Дейкстры).



Рекурсивная генерация всех перестановок заданной последовательности.



Рекурсивный алгоритм решения задачи о рюкзаке (задача коммивояжера).



Рекурсивный алгоритм построения бинарного дерева и обходов в нем (прямой, обратный, симметричный).
 
Сложная или составная рекурсия это когда вызов функции порождает несколько других вызовов, как в этом примере: def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2) В указанных случаях, навскидку, сложной рекурсии не требуется.. А в некоторых, вообще, там не нужна..
 
Я очень плохо объясняю, так бы помогла. Попробуйте через pythonist разобраться . Мне помогло
 
каждый вызов рекурсивной функции, как пишут в учебниках, "порождает новый процесс", так что нужно следить за стеками возврата и вычислений.
 
Назад
Сверху