16.02 Две функции
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления функций F(n) и G(n), где n – целое число, задан следующими соотношениями:
Чему равно значение выражения F(15 548)?
Идея рекурсивного решения:
Для вычисления нужно уметь находить
. Функция
задана рекурсивно:
Её реализуем как рекурсивную функцию g(n). Чтобы не пересчитывать одни и те же значения, используем
мемоизацию (lru_cache). Функция вычисляется через
, поэтому достаточно вызвать
f(15548).
Решение через рекурсию:
from functools import lru_cache # Рекурсивная функция g с мемоизацией @lru_cache(None) def g(n): if n < 10: return 2 * n return g(n - 2) + 1 # Функция f через g @lru_cache(None) def f(n): return 2 * (g(n - 3) + 8) # Выгружаем сначала в память значения функции от 1 до 15548 for i in range(15549): f(i) # Вычисление результата print(f(15548))
Идея динамического решения:
Заведём массив g и последовательно вычислим его значения: для положим
, а для
используем формулу
. После этого в массив f заполним значения по формуле
. Такой способ удобен, так как каждое значение считается один раз и легко получить
.
Решение через динамику:
g = [0] * 16000 f = [0] * 16000 # Заполнение значений g for n in range(16000): if n < 10: g[n] = 2 * n else: g[n] = g[n - 2] + 1 # Вычисление значений f for n in range(16000): f[n] = 2 * (g[n - 3] + 8) print(f[15548])
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!