from functools import lru_cache
@lru_cache(None)
📌 Результат: подключается декоратор lru_cache, который запоминает уже вычисленные значения функции. Это нужно, чтобы не считать одно и то же много раз — иначе программа работала бы очень медленно.
def f(n):
if n == 41:
return 41
if n % 2 == 0:
return f(n - 1) - n
return n * f(n - 2)
📌 Результат: функция F(n) реализует условия задачи.
возвращается F(n - 1) - n, если n > 41 и n чётно
возвращается n · F(n - 2), если n > 41 и n нечётно
for i in range(41, 9095):
f(i)
📌 Результат: функции вызываются для значений от 41 до 9094. Все значения заранее вычисляются и сохраняются в кэше — дальнейшие обращения будут мгновенными.
f(9094)
📌 Результат: вычисляется промежуточное выражение F(9094) (числитель или часть формулы). Используется // — целочисленное деление.
print(f(9094) // f(9089))
📌 Результат: итоговое значение выражения F(9094) // F(9089) выводится на экран — ответ задачи: 82664462.
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан так:
F(41) = 41 при n = 41.
F(n) = F(n − 1) − n, если n > 41 и n чётно.
F(n) = n · F(n − 2), если n > 41 и n нечётно.
Чему равно значение выражения F(9094) / F(9089)?
В ответе укажите только целую часть значения.
Время решения
00:00.00
Нажмите «Пуск», когда начнёте решать
Пробел — пуск и пауза
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода