Задание №16 — Рекурсия
#69586Задание №16ФИПИ
Рекурсия
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = 2 при n = 2;
если n > 2.
Чему равно значение выражения
Правильный ответ
4102638
Пояснение
Решение:
Вычислять целиком не нужно — выражение сворачивается, потому что рекуррентное соотношение связывает три подряд идущих значения.
Запишем правило при : , откуда . Значит искомое выражение равно .
Теперь раскроем . При : , а при : , то есть . Поэтому .
Слагаемые с взаимно уничтожаются:
Тот же ответ даёт программа. Рекурсию «в лоб» здесь применять нельзя (каждый вызов порождает два новых, время растёт экспоненциально) — заполняем таблицу значений по возрастанию :
F = [0] * 2025
F[1], F[2] = 1, 2
for n in range(3, 2025):
F[n] = n * (n - 1) + F[n - 1] - F[n - 2]
print(F[2024] + F[2020] - F[2019]) # 4102638Ответ: 4102638