Пример 1
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан соотношениями:
F(n) = 1 при n = 1;
F(n) = n · F(n − 1) при n > 1.
Чему равно значение выражения (F(2024) + 2 · F(2023)) / F(2022)?
Показать решение и ответ
1. F(n) = n! (факториал). Напрямую считать огромные числа вручную не нужно — сокращаем.
2. F(2024) / F(2022) = 2024 · 2023, а 2 · F(2023) / F(2022) = 2 · 2023.
3. Сумма: 2023 · (2024 + 2) = 2023 · 2026 = 4 098 598.
Решение программой (обратите внимание на глубину рекурсии):
import sys # модуль sys нужен, чтобы поднять лимит рекурсии
sys.setrecursionlimit(5000) # по умолчанию Python не даст рекурсию глубже ~1000 вызовов
def F(n): # функция по определению из условия
if n == 1: # база: F(1) = 1
return 1 # возвращаем 1
return n * F(n - 1) # иначе n · F(n − 1)
print((F(2024) + 2 * F(2023)) // F(2022)) # // — целочисленное деление, точное для огромных чиселОтвет: 4098598
