16.01 Одна функция
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значения функции , где
– натуральное число, задан следующими соотношениями:
, при
, когда n > 3 и четное
, когда n > 3 и нечетное
Назовите минимальное значение n, для которого F(n) = 43.
Рекурсивное решение
В задаче задан рекурсивный алгоритм, при котором функция вызывает сама себя с другими аргументами. Для
реализации создаём пользовательскую функцию в Python с помощью . Внутри используем условный оператор
,
чтобы задать три случая: возвращать значение при
(базовый случай), обрабатывать чётное
и нечётное
. Для последнего случая следует заметить, что прибавление 2 к нечётному числу сохраняет его нечётность,
поэтому вызов
будет бесконечно увеличивать аргумент; чтобы избежать этого, в этом случае возвращаем 0,
обозначая, что функция неопределена. Для второго случая, где есть деление, учитываем, что
должно быть
натуральным; поэтому добавляем проверку выхода из функции, если
или не является целым числом. В
завершение запускаем перебор значений n и проверяем результат вызова функции; найдя первое подходящее
(минимальное)
, завершаем цикл.
def f(n): # объявление функции # Дописываем условие насчёт натуральных чисел if n < 1 or n % 1 != 0: return 0 if n <= 3: # базовый случай return 3 if n > 3 and n % 2 == 0: # рекурсивный случай return 5 + f(n / 2 - 4) # Вместо n + f(n+2) вставляем 0, # нам нужно не допускать нечётные числа, # так как при них рекурсия продолжается бесконечно — каждый раз прибавляется значение, # не меняющее чётность и не приближающее к n < 3 if n > 3 and n % 2 != 0: return 0 for n in range(1, 10000): if f(n) == 43: # если результат подходит print(n) # выводим ответ break # завершаем цикл
Специальные программы

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

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

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

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

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

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