Сколько существует программ, для которых при исходном числе 1
Условие
Исполнитель Вычислитель преобразует число на экране.У исполнителя есть две команды, которым присвоены номера.1. Прибавить 1.2. Умножить на 2.Первая команда увеличивает число на экране на 1, вторая умножает его на 2.Программа для Вычислителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 21 и при этом траектория вычислений содержит число 10 и не содержит числа 16?Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Искомое количество программ равно произведению количества программ, получающих из числа 1 число 10, на количество программ, получающих из числа 10 число 15, и на количество программ, получающих из числа 17 число 21, поскольку траектория вычислений не должна содержать числа 16.Пусть R(n) — количество программ, которые число 1 преобразуют в число n, P(n) — количество программ, которые число 10 преобразуют в число n, а F(n) — количество программ, которые преобразуют число 17 в число n.Верны следующие соотношения.1. Если n не делится на 2, то тогда R(n) = R(n - 1), так как существует единственный способ получения n из n − 1 — прибавление единицы. То же самое аналогично для P(n) и F(n).2. Пусть n делится на 2, тогда R(n) = R(n :
Осталось ещё 5 шагов
+ R(n - 1). То же самое аналогично для P(n) и…
Теперь вычислим значения P(n):P(10) = P(11) =…
Далее вычислим значения F(n):F(17) = F(18) =…
Следовательно, количество программ…
Приведём другое решение на языке Python. def…
Бесплатно · займёт минуту