ВУЗы и колледжи

Укажите минимальное количество команд, которые может выполнить исполнитель, чтобы из числа 19 получить

Некоторый исполнитель может
выполнить только две команды
Прибавить 1 и число умножить на 2.
Укажите минимальное количество
команд, которые может выполнить
исполнитель, чтобы из числа 19 получить
число 629
Ну тут оптимальность таки можно доказать. Исходим из того, что имеем, т. е. из имеющихся вариантов ответа.

0/ Любая из допустимых операций только увеличивает число, к которому операция применяется.

1/ Число умножений не более 5. Доказательство очевидно: при умножении 19 на 2^6=64 получится гораздо больше 629. Дальше ссылаемся на п. 0).

2/ Число умножений не менее 5.
Допустим, их 4. Тогда 629/2^4 ~ 39.31, т. е. нам надо добавить минимум 20 сложений (это если добавлять к минимальному числу 19; если добавлять к бОльшим, то надо еще больше сложений). Всего получается не менее 24 операций. Это хуже 8.

Итак, число умножений в точности равно 5. Осталось добавить несколько сложений.

Т. к. 629/2^5 = 19*32 + 21, то осталось набрать недостающие 21 = 2^4+2^2+2^0. Это ровно 3 сложения - не меньше и не больше.

В тайном смысле последнего абзаца попробуйте разобраться самостоятельно. Даже степени двойки вполне осмысленны.
ЖС
Женя Соболева
89 944
Лучший ответ
629 = 628 + 1
628 = 314 * 2
314 = 157 * 2
157 = 156 + 1
156 = 78 * 2
78 = 39 * 2
39 = 38 + 1
38 = 19 * 2

Всего 8 команд.

Доказательства оптимальности не будет :)
Полный перебор вариантов, скорее всего, даст именно эту последовательность.
Владимир Бойко
Владимир Бойко
49 095
Женя Соболева Спасибо за вариант.
А мне спасибо - за обоснование.
9 операций выходит : 19*2=38, 38+2=76, 76+1=77, 77+1 =78, 78*2 = 156, 156+1=157, 157*2=314, 314*2=628, 628+1=629!
Женя Соболева А доказательство е?

Похожие вопросы