Вопрос:

14. У исполнителя Увеличитель две команды, которым присвоены номера: 1. прибавь 5 2. умножь на 2 Первая из них увеличивает число на экране на 5, вторая увеличивает число в 2 раза. Составьте алгоритм получения из числа 7 числа 88, содержащий не более 5 команд. В ответе запишите только номера команд. (Например, 12121 — это алгоритм: прибавь 5 умножь на 2 прибавь 5 умножь на 2 прибавь 5, который преобразует число 2 в число 43.) Если таких алгоритмов более одного, то запишите любой из них.

Ответ:

Решение:

Наша цель — из числа 7 получить 88, используя не более 5 команд (прибавить 5 или умножить на 2).

Попробуем обратный ход: из 88 получить 7.

  • Если последнее действие было «прибавить 5», то перед ним было \( 88 - 5 = 83 \).
  • Если последнее действие было «умножить на 2», то перед ним было \( 88 / 2 = 44 \).

Рассмотрим вариант, когда последнее действие — умножение на 2, так как 88 — четное число.

  1. 88 (цель)
  2. 44 (действие 2: \( 88 / 2 \))
  3. 39 (действие 1: \( 44 - 5 \))
  4. 78 (действие 2: \( 39 \times 2 \))
  5. 73 (действие 1: \( 78 - 5 \))
  6. 68 (действие 2: \( 73 - 5 \) - здесь ошибка, должно быть \( 73 \times 2 \), но 73 не делится на 2. Значит, этот путь не подходит.)

Попробуем другой путь, где число 5 прибавляется чаще.

  1. 88 (цель)
  2. 44 (действие 2)
  3. 39 (действие 1)
  4. 34 (действие 1: \( 39 - 5 \))
  5. 17 (действие 2: \( 34 / 2 \))
  6. 12 (действие 1: \( 17 - 5 \))
  7. 6 (действие 2: \( 12 / 2 \))
  8. 1 (действие 1: \( 6 - 5 \))

Мы получили 1, а нам нужно 7. Этот путь тоже не подходит.

Попробуем еще раз, двигаясь из 7 к 88:

  1. 7 (начало)
  2. 14 (действие 2: \( 7 \times 2 \))
  3. 19 (действие 1: \( 14 + 5 \))
  4. 38 (действие 2: \( 19 \times 2 \))
  5. 43 (действие 1: \( 38 + 5 \))
  6. 86 (действие 2: \( 43 \times 2 \))
  7. 91 (действие 1: \( 86 + 5 \)) - получили больше 88.

Попробуем другой вариант:

  1. 7
  2. 12 (действие 1)
  3. 24 (действие 2)
  4. 29 (действие 1)
  5. 58 (действие 2)
  6. 63 (действие 1)
  7. 68 (действие 2)
  8. 73 (действие 1)
  9. 78 (действие 2)
  10. 83 (действие 1)
  11. 88 (действие 2)

Этот алгоритм содержит 11 команд. Нам нужно не более 5.

Давайте попробуем оптимизировать. Чтобы получить 88, нам нужно либо \( X+5=88 \) (X=83) или \( X \times 2 = 88 \) (X=44).

Если последнее действие — умножение на 2 (команда 2), то нам нужно из 7 получить 44 за 4 команды.

  1. 7
  2. 14 (2)
  3. 19 (1)
  4. 38 (2)
  5. 43 (1) - получили 43 за 4 команды.

Значит, наш алгоритм будет: 21212. Проверим:

7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19 \(\, \xrightarrow{2} \,\) 38 \(\, \xrightarrow{1} \,\) 43 \(\, \xrightarrow{2} \,\) 86

Получили 86, а не 88. Этот вариант не подходит.

Попробуем, если последнее действие — прибавить 5 (команда 1), то нам нужно из 7 получить 83 за 4 команды.

83 не делится на 2, значит, последнее действие не может быть умножение. Тогда последнее действие должно быть прибавление 5.

Попробуем из 83 получить 7 за 4 команды:

  1. 83
  2. 78 (1)
  3. 39 (2)
  4. 34 (1)
  5. 17 (2) - получили 17, а нам нужно 7.

Попробуем другой вариант из 83:

  1. 83
  2. 41.5 (2) - не подходит, так как число должно быть целым.

Значит, последнее действие — не умножение на 2. Последнее действие — прибавить 5.

Нам нужно из 7 получить 83 за 4 команды. Но 83 — нечетное число, а у нас есть только «прибавить 5» (нечетное) и «умножить на 2» (четное).

Если у нас есть нечетное число, и мы прибавляем нечетное, результат будет четный. Если умножаем на четное, результат будет четный.

7 (нечетное)

7+5 = 12 (четное)

7*2 = 14 (четное)

После первого шага мы всегда будем получать четное число. Следовательно, чтобы получить 83 (нечетное), мы должны закончить прибавлением 5.

Значит, перед последним действием (прибавить 5) число должно быть 83. Но 83 — нечетное.

Если мы имеем дело с нечетным числом (7), и хотим получить нечетное число (83, чтобы потом прибавить 5 и получить 88), то нужно, чтобы последнее действие перед прибавлением 5 было умножением на 2.

Если \( X \times 2 = 83 \), то \( X = 41.5 \). Не подходит.

Значит, из 7 мы должны получить 83 за 4 команды, где последняя команда — умножение на 2. Это невозможно, т.к. 83 нечетное.

Давайте еще раз проверим пример: 2 -> 43.

2 \(\, \xrightarrow{1} \,\) 7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19 \(\, \xrightarrow{2} \,\) 38 \(\, \xrightarrow{1} \,\) 43. Это 5 команд.

Нам нужно из 7 получить 88 за 5 команд.

Попробуем пойти от 7:

  1. 7
  2. 14 (2)
  3. 19 (1)
  4. 38 (2)
  5. 43 (1)
  6. 86 (2) - 6 команд.

Попробуем другой вариант:

  1. 7
  2. 12 (1)
  3. 24 (2)
  4. 29 (1)
  5. 58 (2)
  6. 63 (1)
  7. 68 (2)
  8. 73 (1)
  9. 78 (2)
  10. 83 (1)
  11. 88 (2) - 11 команд.

Попробуем такой вариант:

  1. 7
  2. 10 (1)
  3. 20 (2)
  4. 25 (1)
  5. 50 (2)
  6. 55 (1)
  7. 60 (2)
  8. 65 (1)
  9. 70 (2)
  10. 75 (1)
  11. 80 (2)
  12. 85 (1)
  13. 88 (2) - 12 команд.

Попробуем получить число, близкое к 88, и догнать его прибавлением 5.

88 = 44 * 2. Нужно получить 44 за 4 команды.

7 -> 14 (2) -> 19 (1) -> 38 (2) -> 43 (1). Это 4 команды, получили 43. Тогда 43*2 = 86. Не 88.

88 = 83 + 5. Нужно получить 83 за 4 команды.

83 нечетное. Из 7 (нечетное) за 4 команды, если последняя команда «умножить на 2», то число будет четное. Значит, последнее действие перед прибавлением 5, должно быть умножение на 2.

\( X \times 2 = 83 \) => \( X = 41.5 \). Не подходит.

Значит, нужно получить 83 за 4 команды, где последнее действие — прибавление 5. Тогда перед этим нужно получить 78 за 3 команды.

Из 7 получить 78 за 3 команды.

7 \(\, \xrightarrow{?} \,\) \( Y \) \(\, \xrightarrow{?} \,\) \( Z \) \(\, \xrightarrow{2} \,\) 78. Значит \( Z = 39 \).

Из 7 получить 39 за 2 команды:

  1. 7
  2. 14 (2)
  3. 19 (1) - получили 19.

Тогда: 7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19. Теперь нужно из 19 получить 39 за 1 команду. Невозможно.

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

  1. 7
  2. 12 (1)
  3. 24 (2) - получили 24 за 2 команды.

Теперь нужно из 24 получить 39 за 1 команду. Невозможно.

Попробуем такой алгоритм: 21211

7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19 \(\, \xrightarrow{2} \,\) 38 \(\, \xrightarrow{1} \,\) 43 \(\, \xrightarrow{1} \,\) 48. Не 88.

Попробуем: 12121

7 \(\, \xrightarrow{1} \,\) 12 \(\, \xrightarrow{2} \,\) 24 \(\, \xrightarrow{1} \,\) 29 \(\, \xrightarrow{2} \,\) 58 \(\, \xrightarrow{1} \,\) 63. Не 88.

Попробуем: 21121

7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19 \(\, \xrightarrow{1} \,\) 24 \(\, \xrightarrow{2} \,\) 48 \(\, \xrightarrow{1} \,\) 53. Не 88.

Попробуем: 11212

7 \(\, \xrightarrow{1} \,\) 12 \(\, \xrightarrow{1} \,\) 17 \(\, \xrightarrow{2} \,\) 34 \(\, \xrightarrow{1} \,\) 39 \(\, \xrightarrow{2} \,\) 78. Не 88.

Попробуем: 12211

7 \(\, \xrightarrow{1} \,\) 12 \(\, \xrightarrow{2} \,\) 24 \(\, \xrightarrow{2} \,\) 48 \(\, \xrightarrow{1} \,\) 53 \(\, \xrightarrow{1} \,\) 58. Не 88.

Попробуем: 22111

7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{2} \,\) 28 \(\, \xrightarrow{1} \,\) 33 \(\, \xrightarrow{1} \,\) 38 \(\, \xrightarrow{1} \,\) 43. Не 88.

Попробуем: 12112

7 \(\, \xrightarrow{1} \,\) 12 \(\, \xrightarrow{2} \,\) 24 \(\, \xrightarrow{1} \,\) 29 \(\, \xrightarrow{1} \,\) 34 \(\, \xrightarrow{2} \,\) 68. Не 88.

Попробуем: 21211

7 \(\, \xrightarrow{2} \,\) 14 \(\, \xrightarrow{1} \,\) 19 \(\, \xrightarrow{2} \,\) 38 \(\, \xrightarrow{1} \,\) 43 \(\, \xrightarrow{1} \,\) 48. Не 88.

Попробуем: 11122

7 \(\, \xrightarrow{1} \,\) 12 \(\, \xrightarrow{1} \,\) 17 \(\, \xrightarrow{1} \,\) 22 \(\, \xrightarrow{2} \,\) 44 \(\, \xrightarrow{2} \,\) 88. Это 5 команд.

Алгоритм: 11122.

Проверка:

7 + 5 = 12

12 + 5 = 17

17 + 5 = 22

22 * 2 = 44

44 * 2 = 88

Получили 88 за 5 команд.

Похожие