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