← Назад

📚 Алгоритм для исполнителя

🔹 Что такое исполнитель?

Исполнитель — это абстрактное устройство или сущность, которое умеет выполнять строго определённые команды из своей системы. В задании ВПР вам предстоит составить алгоритм — последовательность команд, которая преобразует одно число в другое.

В ответе нужно записать только номера команд в том порядке, в котором они должны выполняться. Например, 1221 означает: команда 1, затем 2, затем 2, затем 1.

🔹 Типы команд исполнителя

В заданиях ВПР встречаются следующие команды:

  • Арифметические операции: прибавь N, вычти N, умножь на N, раздели на N
  • Возведение в квадрат: возведи в квадрат (число умножается само на себя)
  • Приписывание цифры справа: припиши справа N (к числу 12 приписать 3 → 123)
  • Приписывание цифры слева: припиши слева N (к числу 12 приписать 3 → 312)

⚠️ Важно помнить:

  • Команда «раздели на N» выполняется только если число делится на N без остатка
  • Команда «припиши справа N» эквивалентна умножению числа на 10 и прибавлению N (12 → 12×10+3 = 123)
  • Команда «припиши слева N» зависит от количества цифр в числе (12 → 3×100+12 = 312)

🔹 Как решать задачи?

🔧 Алгоритм решения:

  1. Внимательно прочитайте все доступные команды и их номера
  2. Запишите начальное число и конечное число (цель)
  3. Попробуйте пойти от начала к концу: применяйте команды и смотрите, к чему приводят
  4. Если не получается, попробуйте пойти от конца к началу: какое число могло быть перед последней командой?
  5. Проверьте, укладываетесь ли вы в ограничение по количеству команд
  6. Запишите ответ — только номера команд подряд, без пробелов

🔹 Примеры решения

Пример 1:

У исполнителя две команды:
1. вычти 1
2. умножь на 2
Составьте алгоритм получения из числа 5 числа 30, содержащий не более 5 команд.

Решение от начала:

  1. 5 → команда 2 (×2) → 10
  2. 10 → команда 2 (×2) → 20
  3. 20 → команда 2 (×2) → 40 — слишком много

Попробуем иначе:

  1. 5 → команда 2 (×2) → 10
  2. 10 → команда 2 (×2) → 20
  3. 20 → команда 1 (−1) → 19 — не подходит

Ещё вариант:

  1. 5 → команда 1 (−1) → 4
  2. 4 → команда 2 (×2) → 8
  3. 8 → команда 2 (×2) → 16
  4. 16 → команда 2 (×2) → 32
  5. 32 → команда 1 (−1) → 31 — не то

Правильный путь (от конца):

  1. 30 нечётное, значит последняя команда была 1 (вычти 1): 30+1=31 — не делится на 2...
  2. 30 чётное, могло быть 15×2. 15 → команда 2 → 30
  3. 15 нечётное, перед ним 16 (−1): 16 → команда 1 → 15
  4. 16 = 8×2: 8 → команда 2 → 16
  5. 8 = 4×2: 4 → команда 2 → 8
  6. 4 = 2×2, но у нас 5... Попробуем 5→4 (−1)→8 (×2)→16 (×2)→... не получается 15

Правильный ответ: 21211
5 → ×2 → 10 → −1 → 9 → ×2 → 18 → −1 → 17... Нет.

Ответ: 22111
5 → ×2 → 10 → ×2 → 20 → −1 → 19 → −1 → 18 → −1 → 17... Нет.

Правильный ответ: 12212
5 −1 → 4 ×2 → 8 ×2 → 16 −1 → 15 ×2 → 30. Да!

Пример 2 (с приписыванием):

У исполнителя три команды:
1. прибавь 2
2. умножь на 3
3. припиши справа 1
Из 1 получить 31.

Решение:

  1. 1 → команда 3 (припиши 1) → 11
  2. 11 → команда 1 (+2) → 13
  3. 13 → команда 3 (припиши 1) → 131 — слишком много

Другой путь:

  1. 1 → команда 2 (×3) → 3
  2. 3 → команда 2 (×3) → 9
  3. 9 → команда 1 (+2) → 11
  4. 11 → команда 3 (припиши 1) → 111 — нет

И ещё:

  1. 1 → команда 2 (×3) → 3
  2. 3 → команда 1 (+2) → 5
  3. 5 → команда 3 (припиши 1) → 51 — нет

Ответ: 231
1 ×3 → 3 припиши 1 → 31. Да!

🔹 Метод решения «от конца»

Если идти от начального числа не получается, попробуйте двигаться в обратном направлении — от целевого числа к начальному. Для этого нужно придумать обратные команды:

  • «прибавь N» ↔ обратная «вычти N»
  • «вычти N» ↔ обратная «прибавь N»
  • «умножь на N» ↔ обратная «раздели на N»
  • «раздели на N» ↔ обратная «умножь на N»
  • «припиши справа N» ↔ обратная «отбрось последнюю цифру» (если число оканчивается на N)

Пример «от конца»:

Начало: 3, цель: 27. Команды: 1. прибавь 2, 2. умножь на 3.

27 делится на 3 → значит, предыдущее число 9 (команда 2)
9 делится на 3 → предыдущее 3 (команда 2)
3 — это начальное число!

Путь от конца: 27 ← 9 ← 3. Значит от начала: 3 → 9 → 27.
Команды: 2, 2. Ответ: 22

🔹 Полезные советы

  • Если цель больше начала — скорее всего нужны умножение, возведение в квадрат или приписывание цифр
  • Если цель меньше начала — скорее всего нужны вычитание или деление
  • Если цель содержит больше цифр, чем начало — скорее всего использовалось приписывание
  • Всегда проверяйте, что команда возможна на данном шаге (например, деление нацело)
  • Если таких алгоритмов несколько — запишите любой
▶ Перейти к практике