Сколько существует таких программ, которые число 1 преобразуют в число
Условие
Исполнитель НечетМ преобразует число на экране. У исполнителя НечетМ две команды, которым присвоены номера. 1. Прибавь 1.2. Сделай нечётное.
Первая из этих команд увеличивает число x на экране на 1, вторая переводит число x в число 2x + 1. Например, вторая команда переводит число 10 в число 21. Программа для исполнителя НечетМ — это последовательность команд. Сколько существует таких программ, которые число 1 преобразуют в число 25, причём траектория вычислений не содержит число 24? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 17, 18.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Используем метод динамического программирования. Заведем массив dp, где dp[i] — количество способов получить число i с помощью таких команд.
База динамики:dp[1] = 1.Формула перехода:dp[i] = dp[i - 1] — если i четное;dp[i] = dp[i - 1] + dp[(i -
Осталось ещё 3 шага
: 2] — если i нечетное. Но при этом если i…
: 2 = 24, то его не учитываем. Можно…
Приведём другое решение на языке Python. def…
Бесплатно · займёт минуту