from functools import lru_cache
@lru_cache(None)
📌 Результат: подключается декоратор lru_cache, который запоминает уже вычисленные значения функции. Это нужно, чтобы не считать одно и то же много раз — иначе программа работала бы очень медленно.
def f(n):
if n == ANCHOR:
return 1
if n < 10:
return n + 4
return 2 * n * f(n - 6)
📌 Результат: функция F(n) реализует условия задачи.
если n < 10, возвращается n + 4
если n >= 10, возвращается 2 * n * F(n - 6)
for i in range(ANCHOR, 380501, 6):
f(i)
📌 Результат: предварительный прогон заполняет кэш вычисленными значениями функций.
f(380500) // 200 - 3000 * f(380494)
📌 Результат: вычисляется промежуточное выражение F(380500) // 200 - 3000 * F(380494) (числитель или часть формулы). Используется // — целочисленное деление.
print((f(380500) // 200 - 3000 * f(380494)) // f(ANCHOR))
📌 Результат: итоговое значение выражения (F(380500) // 200 - 3000 * F(380494)) // F(ANCHOR) выводится на экран — ответ задачи: 612595340.
Алгоритм вычисления значения функции F(n), где n — целое число, задан следующими соотношениями:
F(n) = n + 4, если n < 10.
F(n) = 2 × n × F(n − 6), если n ≥ 10.
Чему равно значение выражения (F(380500) / 200 − 3000 × F(380494)) / F(380488)?
В ответе запишите целую часть результата.
Время решения
00:00.00
Нажмите «Пуск», когда начнёте решать
Пробел — пуск и пауза
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода