Присоединиться

11 класс·средний уровень

Сколько существует программ, для которых при исходном числе 1

Условие

Исполнитель Май17 преобразует число на экране. У исполнителя есть две команды, которым присвоены номера.1. Прибавить 1.2. Прибавить 3.Первая команда увеличивает число на экране на 1, вторая увеличивает его на 3. Программа для исполнителя Май17 — это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 17 и при этом траектория вычислений содержит число 9? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Используем метод динамического программирования. заведем массив dp, где dp[i] — количество способов получить число i с помощью таких команд.

    База динамики:dp[1] = 1.Формула перехода:dp[i] = dp[i - 1] + dp[i - 3].При этом не учитываются значения для чисел больше 9, которые можно получить из чисел меньше 9 (перескочив тем самым траекторию 9).Далее будут приведены значения в ячейках dp от 1 до 17: 1 1 1 2 3 4 6 9 13 13 13 26 39 52 78 117

Осталось ещё 1 шаг

  1. Приведём другое решение на языке Python.def…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Оператор присваивания и ветвления. Перебор вариантов»