from functools import lru_cache
@lru_cache(None)
📌 Результат: подключается декоратор lru_cache, который запоминает уже вычисленные значения функции. Это нужно, чтобы не считать одно и то же много раз — иначе программа работала бы очень медленно.
def f(n):
if n < 2:
return Fraction(1)
if n % 2 == 0:
return Fraction(n, 3) * f(n - 1)
return f(n - 1) * 6
📌 Результат: функция F(n) реализует условия задачи.
если n < 2, возвращается 1
возвращается n // 3 * F(n - 1), если n > 1 и n чётно
возвращается F(n - 1) * 6, если n > 1 и n нечётно
for i in range(1, 2028):
f(i)
📌 Результат: функции вызываются для значений от 1 до 2027. Все значения заранее вычисляются и сохраняются в кэше — дальнейшие обращения будут мгновенными.
print(int(f(2027) / f(2025)))
📌 Результат: итоговое значение выражения int(F(2027) / F(2025)) выводится на экран — ответ задачи: 4052.
Алгоритм вычисления значения функции F(n), где n — целое число, задан следующими соотношениями:
F(n) = 1, если n < 2.
F(n) = n/3 × F(n − 1), если n > 1 и n чётно.
F(n) = F(n − 1) × 6, если n > 1 и n нечётно.
Чему равно значение функции F(2027) / F(2025)?
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода