Рекурсия

Редакция Без Сменки
Честно. Понятно. С душой.
Рекурсия в общем смысле — это вызов функцией самой себя.

Как такое возможно? А что мешает те же операции выполнить ещё раз? Возможно, с другими условиями.

Сегодня правда обойдёмся без программирования 🙃

◾️Вычисление числа Фибоначчи

Последовательность Фибоначчи представляет следующий ряд чисел: 0,1,1,2,3,5,8,13,21,34,55,89.., в которой первые два числа равны либо 1 и 1, либо 0 и 1, а каждое последующее число равно сумме двух предыдущих чисел.

🔹 Для реализации рекурсивного вычисления таких чисел достаточно написать соотношение чисел и аккуратно запрограммировать:

F0=0, F1=1, при n>1 число Фибоначчи с номером n вычисляется как Fn=Fn−1+Fn−2

def Fib(n):#функция для вычисления нового члена последовательности
if n <= 1:# число на 0 и 1 месте=само число
return n#возвращаем число
else:#числа на остальных местах вычисляются как сумма 2-х предыдущих
return Fib(n — 1) + Fib(n — 2)#возвращаем число

print(Fib(10))#определяем число на 10ом месте — результат 55

🔹 Часто использование рекурсивных алгоритмов приводит к ошибкам. Например, может случиться бесконечная рекурсия, когда программа продолжает свою работу пока не кончится свободная память. Нередко причиной такой проблемы является неверное условие выхода из рекурсии:
допустим, в нашей программе мы забыли поставить проверку на первые 2 члена последовательности, тогда программа при параметре 1 будет вызывать 0, а потом пойдет вызов -1 и тд….

🔹 Поэтому перед написанием программы с рекурсией обязательно обрати внимания на условия, когда твой алгоритм успешно завершит свою работу.

Рекуррентные формулы:
F(n) = F(n-1)*2, при n>1;
F(n) = 1, при n = 1;
F(n) задана для натуральных n

Чему равна F(5)?
F(5) = F(4)*2 = F(3)*2*2 = F(2)*2*2*2 = F(1)*2*2*2*2 = 1*2*2*2*2 = 16 — это было несложно.

А если так?
F(n) = F(n-1)*3 + F(n-2)*2 , n>2;
F(2) = 2;
F(1) = 1;

Найти F(5)…

Тут без хорошего методa не обойдёшься. Давай решать просто с начала:
F(3) = 2*3 + 1*2=8;
F(4) = 8*3 + 2*2 = 28;
F(5) = 28*3 + 8*2 = 100;

Где вы учитесь?

Вам также будет интересно

Практика списков
Вспомним тему “Работа со списками” и решим следующее задание на программирование: Дан целочисленный массив из 50 элементов. Элементы массива могут...
Запятые в предложениях с однородными членами
Запятые в предложениях с однородными членами ставятся: 🔺 если они связаны бессоюзной связью: Чудилось весёлое чириканье птиц, загадочное трепетание...
Алгоритм решения текстовых задач на ЕГЭ по профильной математике
Все или почти все текстовые задачи идут по одной проверенной схеме. Сначала естественно, нужно прочитать текст самой задачи, затем нарисовать к ней...
Задание 3 в ЕГЭ 2026 по истории: соотнесение процессов, событий, явлений и фактов
Нужно сопоставить исторические процессы, события, явления и факты. Разбираемся, как не перепутать эти пункты между собой. Уровень сложности —...
ЭКСТРЕМУМЫ ФУНКЦИИ
💁🏼‍♀️ Производная показывает насколько быстро что-то происходит. Если мы посмотрим на эту самую функцию производной, то увидим, что есть особые...
А.Н. Островский «Гроза» (1823–1886): анализ и критика для ЕГЭ 2026
Драма А.Н. Островского «Гроза» является классикой русской литературы XIX века. Это произведение включено в программу ЕГЭ 2026 по литературе, а также...

0 комментария

Авторизуйтесь, чтобы оставить комментарий.