Ответ:

Решение:

Нам нужно получить число 50, начиная с числа 4, используя команды «прибавь 3» (1) и «умножь на 2» (2). Алгоритм должен содержать не более 5 команд.

Попробуем выполнить команды в обратном порядке от 50:

  1. Если последнее действие — «умножь на 2», то предыдущее число было 50 / 2 = 25.
  2. Теперь нужно получить 25, начиная с 4.
  3. Если последнее действие «прибавь 3», то предыдущее число было 25 - 3 = 22.
  4. Начинаем с 4, нужно получить 22.
  5. 22 / 2 = 11 (команда 2).
  6. 11 - 3 = 8 (команда 1).
  7. 8 / 2 = 4 (команда 2).

Получаем последовательность команд в обратном порядке: 2, 1, 2, 2, 1.

В прямом порядке (от 4 к 50):

  1. 4 + 3 = 7 (команда 1)
  2. 7 * 2 = 14 (команда 2)
  3. 14 + 3 = 17 (команда 1)
  4. 17 * 2 = 34 (команда 2)
  5. 34 + 3 = 37 (команда 1) — не 50

Попробуем другой путь:

  1. 4 * 2 = 8 (команда 2)
  2. 8 * 2 = 16 (команда 2)
  3. 16 + 3 = 19 (команда 1)
  4. 19 * 2 = 38 (команда 2)
  5. 38 + 3 = 41 (команда 1) — не 50

Снова попробуем от 50, но с другой логикой. Если не делим на 2, то вычитаем 3. 50 - 3 = 47. 47 не делится на 2. Значит, последнее действие точно умножение.

Давайте попробуем сгенерировать последовательности:

  • 4 + 3 = 7 (1)
  • 7 * 2 = 14 (2)
  • 14 * 2 = 28 (2)
  • 28 + 3 = 31 (1)
  • 31 * 2 = 62 (2) — не 50
  • 4 * 2 = 8 (2)
  • 8 + 3 = 11 (1)
  • 11 * 2 = 22 (2)
  • 22 + 3 = 25 (1)
  • 25 * 2 = 50 (2)

Получили последовательность из 5 команд: 2, 1, 2, 1, 2.

Ответ: 21212