Вопрос:

19. Система команд исполнителя Конструктор состоит из двух команд, которым присвоены номера: 1. приписать 2 2. разделить на 2 По первой из них к числу приписывается справа 2, по второй число делится на 2. а) Как будет преобразовано число 8, если исполнитель выполнит алгоритм 22212? б) Составьте алгоритм в системе команд этого исполнителя, по которому число 1 будет преобразовано в число 16 (в алгоритме должно быть не более 5 команд).

Ответ:

a) Разберём алгоритм 22212 для числа 8: 1. 2: Разделить на 2: 8 / 2 = 4 2. 2: Разделить на 2: 4 / 2 = 2 3. 2: Разделить на 2: 2 / 2 = 1 4. 1: Приписать 2: 1 -> 12 5. 2: Разделить на 2: 12 / 2 = 6 Таким образом, число 8 будет преобразовано в число 6. б) Чтобы преобразовать число 1 в число 16: 1. Приписать 2: 1 -> 12 2. Разделить на 2: 12 / 2 = 6 3. Приписать 2: 6 -> 62 4. Разделить на 2: 62 / 2 = 31 (не 16, не подходит) Попробуем другой вариант: 1. Приписать 2: 1 -> 12 2. Приписать 2: 12 -> 122 3. Приписать 2: 122 -> 1222 4. Разделить на 2: 1222 / 2 = 611 (не 16, не подходит) Попробуем другой вариант: 1. Приписать 2: 1 -> 12 2. Разделить на 2: 12/2 = 6 3. Приписать 2: 6 -> 62 4. Разделить на 2: 62/2 = 31 Попробуем другой вариант: 1. Приписать 2: 1 -> 12 2. Приписать 2: 12 -> 122 3. Приписать 2: 122 -> 1222 4.Разделить на 2: 1222/2 = 611 5.Приписать 2: 611-> 6112 6.Разделить на 2: 6112/2 = 3056 Попробуем другой вариант 1. Приписать 2: 1-> 12 2. Разделить на 2: 12/2=6 3. Приписать 2: 6-> 62 4. Разделить на 2: 62/2=31 Давайте попробуем другой подход. Число 16 это 2^4. Мы не можем напрямую получить 16. Но мы можем получить 16, если разделим число на 2. Как получить 32. 1. Приписать 2: 1 -> 12 2. Приписать 2: 12 -> 122 3. Приписать 2: 122 -> 1222 4. Приписать 2: 1222 -> 12222 5. Разделить на 2: 12222 / 2 = 6111 Попробуем еще раз 1. Приписать 2: 1 -> 12 2. Разделить на 2: 12 / 2 = 6 3. Приписать 2: 6 -> 62 4. Разделить на 2: 62 / 2 = 31 Похоже, напрямую из 1 получить 16 не получится. Так как при делении на 2 у нас получаются не целые числа. Давайте попробуем так: 1. Приписать 2: 1 -> 12 2. Приписать 2: 12 -> 122 3. Разделить на 2: 122/2 = 61 4. Приписать 2: 61 -> 612 5. Разделить на 2: 612/2 = 306 Проще всего это сделать так: 1 -> 12 -> 6 -> 62 -> 31 Я думаю, что при таких командах получить число 16 из 1 нельзя. Нужен другой набор команд. Возможно подразумевалось что то другое 1. Приписать 2: 1 -> 12 2. Разделить на 2: 12 / 2 = 6 3. Приписать 2: 6 -> 62 4. Разделить на 2: 62 / 2 = 31 5. Приписать 2: 31 -> 312 6. Разделить на 2: 312 / 2 = 156 Нужно с помощью приписывания и деления получить 32, а затем разделить на 2. Но в условии не более 5 команд. Если я правильно понял условие то решение не существует Алгоритм для преобразования 1 в 16, используя не более 5 команд не существует в рамках этих команд. Вероятнее всего это ошибка в условии задачи или я не верно понял условие.
Смотреть решения всех заданий с фото

Похожие