
Задача по теме: "Одномерное динамическое программирование"
Исполнитель Вычислитель преобразует число, записанное на экране. У исполнителя есть две команды, которым присвоены номера:
1. Вычти 1
2. Найди целую часть от деления на 3
Первая из них уменьшает число на экране на 1, вторая заменяет число на экране на число, равное целой части от деления числа на экране на 3. Программа для Вычислителя - это последовательность команд. Сколько существует таких программ, которые преобразуют исходное число 37 в число 2 и при этом траектория вычислений программы содержит число 10?


Решение:
Для решения задания напишем программу, которая действует по описанному в задаче алгоритму:
def f(x, finish):
if x < finish: return 0
if x == finish: return 1
if x > finish:
return f(x-1, finish) + f(x//3, finish)
print(f(37,10)*f(10,2))
Ответ: 54
Сообщение об ошибке
Расскажите, в каком месте допущена ошибка, мы как можно быстрее её исправим. Спасибо за обратную связь!

МГ | Pro | ProMax | |
Практика на платформе | |||
Отслеживание прогресса обучения | |||
Двухуровневое домашнее задание после каждого вебинара | |||
Все материалы составлены экспертом ЕГЭ | |||
Персональный менеджер | |||
Личный куратор | |||
Разбор ошибок личным куратором | |||
Еженедельные созвоны с куратором для закрытия индивидуальных пробелов | |||
Составление индивидуального расписания |

счёта
средств
подтверждено!
Теперь вы можете приступить
к следующему уроку
курса по математике
замены
Для смены номера телефона
мы отправили Вам код по СМС,
введите его в поле ниже.
Электронная почта
На почту придет чек об оплатеНажимая кнопку "купить", Вы выражаете своё согласие с офертой оказания услуг и принимаете их условия
Здравствуйте!
Выберите информацию о себе ниже

Оплата прошла успешно!
