Вопрос:

7. У исполнителя Калькулятор1 две команды, которым присвоены номера: 1. прибавь 1, 2. умножь на 5. Запишите в ответе программу, которая содержит не более шести команд и переводит число 1 в число 77.

Ответ:

Решение:

Нам нужно получить число 77, начиная с 1, используя команды «+1» и «*5».

Попробуем идти от числа 1 к 77:

  1. \( 1 \xrightarrow{+1} 2 \)
  2. \( 2 \xrightarrow{+1} 3 \)
  3. \( 3 \xrightarrow{\times 5} 15 \)
  4. \( 15 \xrightarrow{+1} 16 \)
  5. \( 16 \xrightarrow{+1} 17 \)
  6. \( 17 \xrightarrow{\times 5} 85 \) - это больше 77, такой путь не подходит.

Попробуем другой путь, где умножение будет использоваться ближе к концу:

  1. \( 1 \xrightarrow{+1} 2 \)
  2. \( 2 \xrightarrow{\times 5} 10 \)
  3. \( 10 \xrightarrow{\times 5} 50 \)
  4. \( 50 \xrightarrow{+1} 51 \)
  5. \( 51 \xrightarrow{+1} 52 \)
  6. \( 52 \xrightarrow{+1} 53 \) - не подходит.

Попробуем идти от большего числа к меньшему, чтобы понять, как получить 77:

Число 77 можно получить двумя способами:

  • \( 77 = 76 + 1 \)
  • \( 77 = \text{не делится на 5} \)

Значит, последняя команда должна быть «+1».

Чтобы получить 76, нужно:

  • \( 76 = ? \times 5 \) - не делится.
  • \( 76 = ? + 1 \) - не подходит, так как мы уже определили, что последняя команда «+1».

Попробуем получить число, из которого легко получить 77. Например, если мы умножим на 5, получим число, оканчивающееся на 0 или 5.

Число 75 близко к 77. \( 75 = 15 \times 5 \).

Программа:

  1. \( 1 \xrightarrow{+1} 2 \)
  2. \( 2 \xrightarrow{+1} 3 \)
  3. \( 3 \xrightarrow{+1} 4 \)
  4. \( 4 \xrightarrow{\times 5} 20 \)
  5. \( 20 \xrightarrow{+1} 21 \)
  6. \( 21 \xrightarrow{\times 5} 105 \) - не подходит.

Попробуем получить 15, чтобы умножить на 5:

\( 1 \xrightarrow{+1} 2 \xrightarrow{+1} 3 \xrightarrow{\times 5} 15 \). Это 4 команды.

Теперь у нас есть 15. Чтобы получить 77:

\( 15 \xrightarrow{\times 5} 75 \) (5 команд)

\( 75 \xrightarrow{+1} 76 \) (6 команд)

\( 76 \xrightarrow{+1} 77 \) (7 команд) - слишком много.

Попробуем другой подход. Целевое число 77. Предыдущее может быть 76 (добавить 1) или 77/5 (не целое).

Значит, предпоследняя команда «+1». Значит, предыдущее число 76.

Как получить 76? Это 75+1 или 76/5 (не целое).

Значит, число перед 76 — это 75.

Как получить 75? Это 74+1 или 15*5.

Если мы выберем 15*5, то программа будет:

1. \( 1 \to 2 \) (+1)

2. \( 2 \to 3 \) (+1)

3. \( 3 \to 15 \) (*5)

4. \( 15 \to 75 \) (*5)

5. \( 75 \to 76 \) (+1)

6. \( 76 \to 77 \) (+1)

Это 6 команд. Получили 77.

Ответ: +1, +1, *5, *5, +1, +1