ЕГЭ · Информатикаподготовка по заданиям
Задание 13 из 27Алгоритмы

Алгоритмы и программирование · 1 балл

Ход исполнения алгоритма

Трассировка и подсчёт программ

Проследить выполнение алгоритма исполнителя и посчитать количество программ, ведущих к нужному результату.

Алгоритмы целое число новая тема 2027
2027

В 2027 тема задания изменена: теперь исполнитель, траектория и подсчёт программ. В 2026 задание проверяло маску подсети.

Что проверяет

Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов.

Основание: проект спецификации и кодификатора КИМ 2027. Открыть документы

Теория

Что нужно знать

Задание 13 проверяет работу с исполнителем, который преобразует число на экране. В демоверсии 2027 нужно посчитать, сколько существует программ, переводящих одно число в другое, с ограничениями на траекторию. Это 1 первичный балл, раздел «Алгоритмы и программирование».

Минимум для задания 13

  • чем программа отличается от траектории
  • команды исполнителя и условия их применимости
  • рекурсивный перебор с запоминанием
  • динамика по числу
  • обязательные и запрещённые числа
  • ограничения на команды: не подряд, не более k раз
  • команды над цифрами числа
  • проверка ответа на малом примере

Программа и траектория

Программа — это последовательность команд исполнителя. Траектория — последовательность чисел, которые получаются после каждой команды. В задании чаще всего нужно количество программ, а не количество различных траекторий.

  • Стартовое число в траекторию не включают: для программы ABA из 13 траектория — 14, 41, 42.
  • Разные программы могут приводить к одним и тем же числам, но считаются отдельно.
  • Если спрашивают «сколько различных чисел», ответ — мощность множества результатов.
  • Читайте, входит ли конечное число в траекторию: формулировки различаются.

Команды и условия применимости

Сначала выпишите все команды и проверьте, когда каждая доступна. Если команда запрещена условием, соответствующая ветка не создаётся.

  • «Поменяй местами» — только если цифра десятков меньше цифры единиц.
  • «Разделить на 2» — только для чётного, иногда только положительного числа.
  • «Возвести в квадрат» и «умножить на 3» могут перескочить цель.
  • «Прибавить сумму цифр» и «прибавить максимальную цифру» зависят от записи числа.
  • Для отрицательных чисел отдельно проверяйте целую часть и модуль.

Рекурсивная формула

Пусть f(x) — число программ из текущего числа x в целевое. Тогда f(x) равно сумме f(next) по всем допустимым командам. Граничные случаи отсекают лишние ветки.

  • f(target) = 1: пустая программа уже приводит к цели.
  • Если x > target при командах, которые только увеличивают, f(x) = 0.
  • Если x — запрещённое число, f(x) = 0.
  • Если команда недоступна, её слагаемое не добавляется.
  • Мемоизация (@lru_cache) убирает повторные вычисления.

Направление и динамика

Рекурсию можно запускать от старта к цели или от цели к старту. Для монотонных команд удобно считать f(x) с конца: f(target) = 1, затем двигаться к старту.

  • Снизу вверх: массив dp от target до start, если команды только увеличивают.
  • Сверху вниз: рекурсия с memo, если состояний немного.
  • При командах уменьшения меняйте направление и условия границ.
  • Если возможны циклы, постройте граф состояний и топологический порядок.

Обязательные числа

Если траектория обязана содержать число X, разбейте путь на два независимых участка: start → X и X → target. Количество программ перемножается.

  • Для нескольких чисел: f(start, x1) · f(x1, x2) · … · f(xk, target).
  • Числа должны идти в том порядке, в котором их можно пройти.
  • Если порядок не задан, рассмотрите все допустимые порядки и сложите варианты.
  • Запрещённые числа исключаются на каждом участке.

Запреты и «не оба»

Запрещённое число просто обнуляет ветку. Формулировка «не содержит A и B одновременно» требует вычитания: из всех программ вычитаем те, где встретились оба.

  • «Не содержит X»: if x == X: return 0.
  • «Не содержит A и B одновременно»: всего − (через A, затем B) − (через B, затем A), если оба порядка возможны.
  • «Содержит хотя бы одно из A, B»: сложите пути через A и через B и вычтите пересечение.
  • Проверьте, может ли исполнитель проходить числа в обратном порядке.

Ограничения на команды

Если есть ограничение на количество или порядок команд, добавьте в состояние дополнительный параметр: последняя команда, сколько раз использована команда, сколько чисел было чётным и т. п.

  • «Не более k раз»: параметр used; при used == k команда не добавляется.
  • «Не более двух одинаковых команд подряд»: храните последнюю команду и длину серии.
  • «После команды B только A или C»: параметр last и отдельный набор команд.
  • «Ровно k команд»: считайте состояния (число, шаг), а не только пути.

Команды над цифрами

Команды могут менять не значение, а запись числа. Реализуйте их отдельными функциями и проверяйте применимость до вызова.

  • Поменять две младшие цифры: проверить s[-2] < s[-1], затем переставить.
  • Перевернуть число: int(str(x)[::-1]); ведущие нули исчезают.
  • Прибавить сумму цифр: sum(map(int, str(x))).
  • Прибавить максимальную цифру: max(map(int, str(x))).
  • Отбросить последний разряд: x // 10.
  • Для двоичной записи: bin(x)[2:].

Когда перебор, а не формула

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

  • «Сколько различных чисел можно получить»: складывайте результаты в set.
  • «Ровно k команд»: передавайте номер шага и добавляйте число в set на последнем шаге.
  • Малые k (до 15–20) удобно перебирать через itertools.product.
  • Для больших k ищите закономерность или динамику по состояниям.

Проверка

Перед записью ответа проверьте программу на маленьком примере и оцените порядок числа.

  • Сравните с ручным перебором для target ≤ 20.
  • Проверьте, что не считаете пустую программу, если start ≠ target.
  • Убедитесь, что запрещённое число не совпало со стартом или целью.
  • Для больших ответов используйте Python: целые числа не переполняются.
  • Если ответ слишком велик, проверьте, не считаете ли траектории вместо программ.

Разбор примера

Учебный пример: 3 → 10, команды +1 и ×2

Посчитаем количество программ. Из каждого числа можно перейти в x + 1 и, если не перескочили цель, в 2x.

f(x) — число программ из x в 10
x109876543
f(x)11111234
  1. f(10) = 1: пустая программа уже приводит к цели.
  2. Для 9, 8 и 7 работает только команда +1, поэтому f(x) = 1.
  3. f(6) = f(7) = 1: команда ×2 даёт 12 > 10 и не рассматривается.
  4. f(5) = f(6) + f(10) = 1 + 1 = 2; f(4) = f(5) + f(8) = 2 + 1 = 3.
  5. f(3) = f(4) + f(6) = 3 + 1 = 4.
  6. Если запретить число 6, ветка 3 → 6 исчезает, и остаётся 3 программы.

Ответ4 программы; 3, если число 6 запрещено.

Способы решения

Выберите метод под формулировку

Методы собраны по решениям задания 13 из базы Kompege. Начните с того, что именно нужно найти в условии.

01

когда нет дополнительных условий

Базовая рекурсия: из A в B

Когда использовать: Нужно просто посчитать программы из одного числа в другое, а команды только увеличивают число.

  1. Выпишите команды и убедитесь, что они увеличивают число.
  2. Определите границы: если x > target, вернуть 0.
  3. Если x == target, вернуть 1.
  4. Сложите результаты для каждой команды.
  5. Добавьте @lru_cache, если состояний много.

Пример

Команды +1 и ×2, из 3 в 24. Функция перебирает оба продолжения и суммирует количество программ.

from functools import lru_cache

@lru_cache(None)
def f(x, target):
    if x > target:
        return 0
    if x == target:
        return 1
    return f(x + 1, target) + f(x * 2, target)

print(f(3, 24))

Ответ28.

По мотивам задачи № 26869 (база Kompege).

02

когда траектория должна содержать X

Обязательное число: умножаем участки

Когда использовать: В условии есть «траектория вычислений содержит число X».

  1. Найдите обязательное число X.
  2. Посчитайте программы A → X и X → B отдельно.
  3. Перемножьте количества.
  4. Если обязательных чисел несколько, перемножьте все участки.
  5. Проверьте, что порядок чисел возможен.

Пример

Команды +1, +3 и ×2; из 1 в 27; траектория содержит 9 и не содержит 15. Считаем два участка: 1 → 9 и 9 → 27.

def f(x, target):
    if x > target or x == 15:
        return 0
    if x == target:
        return 1
    return f(x + 1, target) + f(x + 3, target) + f(x * 2, target)

print(f(1, 9) * f(9, 27))

Ответ10 686.

По мотивам задачи № 9949 (база Kompege).

03

когда траектория не должна содержать X

Запрещённое число: обнуляем ветку

Когда использовать: В условии есть «не содержит число X» или «не проходит через X».

  1. Добавьте проверку x == X в начало функции.
  2. Верните 0, не рассматривая команды.
  3. Проверьте, что X не совпадает со стартом или целью.
  4. Если запретов несколько, перечислите их через or.

Пример

Команды +2, ×3 и ×2; из 13 в 45; запрещено число 16.

def f(x, target):
    if x >= target or x == 16:
        return x == target
    return f(x + 2, target) + f(x * 3, target) + f(x * 2, target)

print(f(13, 45))

Ответ3.

По мотивам задачи № 11261 (база Kompege).

04

когда нужно пройти 28 и 31

Несколько обязательных чисел: порядок и произведение

Когда использовать: Траектория должна содержать несколько чисел.

  1. Расположите обязательные числа по порядку.
  2. Разбейте путь на участки между ними.
  3. Перемножьте количества программ на участках.
  4. Если порядок не очевиден, проверьте все варианты.

Пример

Команды +2 и +4; из 9 в 37; траектория содержит 27 и 29 и не содержит 32.

def f(x, target):
    if x >= target or x == 32:
        return x == target
    return f(x + 2, target) + f(x + 4, target)

print(f(9, 27) * f(27, 29) * f(29, 37))

Ответ275.

По мотивам задачи № 11264 (база Kompege).

05

когда условия комбинируются

«Содержит X, но не Y» и «не оба»

Когда использовать: Нужно пройти через одно число и обойти другое или исключить одновременное появление.

  1. Для «содержит X, не содержит Y»: f(A, X) · f(X, B), где Y запрещён на обоих участках.
  2. Для «не содержит A и B одновременно»: из всех программ вычитаем те, где встретились оба.
  3. Проверьте, в каком порядке можно пройти A и B.
  4. Если возможны оба порядка, вычтите оба произведения.
  5. Если порядок один, достаточно одного вычитания.

Пример

Команды ×2, квадрат и куб; из 2 в 131 072; траектория не должна содержать 4 и 16 одновременно. Всего программ 68, через 4 и 16 проходит 36.

def f(a, b):
    if a == b:
        return 1
    if a > b:
        return 0
    return f(a * 2, b) + f(a ** 2, b) + f(a ** 3, b)

total = f(2, 131072)
both = f(2, 4) * f(4, 16) * f(16, 131072)
print(total - both)

Ответ32.

По мотивам задачи № 24804 (база Kompege).

06

когда команду можно использовать не всегда

Ограничения на команды: добавляем параметр

Когда использовать: В условии есть «не более k раз», «не подряд», «после B только A или C».

  1. Определите, чего не хватает в состоянии f(x).
  2. Добавьте параметр: последняя команда, число использований, длина серии.
  3. При переходе обновляйте параметр.
  4. В базовом случае проверьте все ограничения.
  5. Мемоизируйте по всем параметрам.

Пример

Команды +2, квадрат и ×3; из 2 в 64; после квадрата разрешены только +2 и ×3.

def f(x, target, last):
    if x > target:
        return 0
    if x == target:
        return 1
    if last == "square":
        return f(x + 2, target, "add") + f(x * 3, target, "mul")
    return (f(x + 2, target, "add")
            + f(x ** 2, target, "square")
            + f(x * 3, target, "mul"))

print(f(2, 64, ""))

Ответ55.

По мотивам задачи № 11240 (база Kompege).

07

когда команда зависит от цифр

Команды над цифрами: меняем запись числа

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

  1. Напишите отдельную функцию для каждой команды.
  2. Проверьте условие применимости до вызова.
  3. Помните про ведущие нули и длину числа.
  4. Для отрицательных чисел определите, как трактуется запись.
  5. Не смешивайте десятичную и двоичную запись.

Пример

Демоверсия 2027: из 100 в 141; A — прибавить 1; B — поменять две младшие цифры, если десятки меньше единиц.

def swap_last_two(x):
    s = str(x)
    if len(s) < 2 or int(s[-2]) >= int(s[-1]):
        return x
    return int(s[:-2] + s[-1] + s[-2])

def f(x, target):
    if x > target:
        return 0
    if x == target:
        return 1
    result = f(x + 1, target)
    y = swap_last_two(x)
    if y != x:
        result += f(y, target)
    return result

print(f(100, 141))

Ответ16.

Демоверсия 2027, задание 13; по мотивам задачи № 31079 (база Kompege).

08

когда спрашивают не программы

«Сколько различных чисел»: множество результатов

Когда использовать: Нужно количество уникальных чисел после программ фиксированной длины.

  1. Создайте set для результатов.
  2. Передавайте номер шага.
  3. На последнем шаге добавляйте число в set.
  4. Не считайте одинаковые числа повторно.
  5. Для малых k можно перебрать itertools.product.

Пример

Команды +3 и −2; из 1; ровно 68 команд. Храним множество чисел после каждого шага.

states = {1}
for _ in range(68):
    states = {x + 3 for x in states} | {x - 2 for x in states}
print(len(states))

Ответ69.

По мотивам задачи № 12475 (база Kompege).

09

когда удобнее считать от цели

Обратный ход и динамика по таблице

Когда использовать: Команды уменьшают число или состояний немного.

  1. Постройте таблицу dp для чисел от target до start.
  2. dp[target] = 1.
  3. Для каждого x переберите команды, ведущие в уже посчитанные состояния.
  4. Сложите значения.
  5. Проверьте границы и запреты.

Пример

Команды −1 и −2; из 50 в 2. Считаем f(x) от 2 к 50; это числа Фибоначчи.

from functools import lru_cache

@lru_cache(None)
def f(x, target):
    if x < target:
        return 0
    if x == target:
        return 1
    return f(x - 1, target) + f(x - 2, target)

print(f(50, 2))

Ответ7 778 742 049.

По мотивам задачи № 25559 (база Kompege).

10

когда спрашивают минимум команд

Длина кратчайшей программы

Когда использовать: Нужно узнать, за какое минимальное число команд можно получить B из A, а не сколько всего программ.

  1. Постройте граф состояний: вершина — число, ребро — допустимая команда.
  2. Запустите поиск в ширину (BFS) от стартового числа.
  3. Первое достижение цели даёт кратчайшую длину.
  4. Храните расстояние в словаре или в очереди пар (число, шаги).
  5. Проверьте, что команды не уводят за допустимые границы.
  • BFS работает и для команд с уменьшением, если нет бесконечного цикла; следите за границами.
  • Если нужна сама программа, а не только её длина, храните предыдущее состояние.
  • Не путайте длину кратчайшей программы с количеством различных результатов после N команд.
  • Для команд, зависящих от цифр, BFS по числам всё равно работает: просто аккуратно вычисляйте следующее состояние.
  • При больших диапазонах BFS может быть тяжёлым; проверьте, нельзя ли найти короткий путь вручную.

Пример

Команды +1 и ×2; из 1 в 10. Найдём минимальное число команд.

from collections import deque

start, target = 1, 10
dist = {start: 0}
q = deque([start])
while q:
    x = q.popleft()
    if x == target:
        break
    for y in (x + 1, x * 2):
        if y <= target and y not in dist:
            dist[y] = dist[x] + 1
            q.append(y)
print(dist.get(target, -1))  # 4

Ответ4: 1 → 2 → 4 → 5 → 10.

По видео 2027 года, глава «Длина кратчайшей программы».

11

перед записью ответа

Проверка и типичные ловушки

Когда использовать: Ответ уже получен, но нужно быстро найти обидную ошибку.

  • Проверьте, что стартовое число не считается программой, если start ≠ target.
  • Убедитесь, что обязательное число действительно входит в траекторию, а не только в программу.
  • Проверьте условие применимости каждой команды: особенно «поменяй местами» и «раздели на 2».
  • Не забудьте, что команда может перескочить цель; такие ветки дают 0.
  • Для «не содержит A и B одновременно» проверьте, не вычли ли пересечение дважды.
  • Для «ровно k команд» не путайте количество программ и количество различных результатов.
  • Для больших чисел используйте Python и memoization; проверьте глубину рекурсии.
  • Сделайте ручной перебор для target ≤ 20 и сравните ответ.
  • Проверьте, не нужно ли вернуть сумму цифр ответа или остаток.
  • Если ответ — количество программ, он не может быть отрицательным.

Шпаргалка: формулировка → метод

В условииЧто делать
«сколько существует программ»рекурсия f(x) = сумма f(next)
«траектория содержит X»f(start, X) · f(X, target)
«траектория не содержит X»if x == X: return 0
«содержит X и Y»произведение участков в порядке прохождения
«не содержит A и B одновременно»всего − пути через A и B
«содержит хотя бы два из …»сумма по парам с включением-исключением
«команда B только после A»параметр last
«не более k раз»параметр used
«ровно k команд»состояние (число, шаг)
«сколько различных чисел»set результатов
«кратчайшая программа»BFS по числам, первое достижение цели
«поменяй местами»проверить цифры и собрать число
«переверни число»int(str(x)[::-1])
«разделить на 2»только чётное; x // 2
«возвести в квадрат»x ** 2, следить за перескоком
«прибавить сумму цифр»sum(map(int, str(x)))
«большой ответ»Python int и memoization
«проверка»перебор для малых target

По базе Kompege: в нумерации до 2027 года тема исполнителей и подсчёта программ хранилась под № 23 — 1 009 задач, 107 решений (102 программных и 5 текстовых) и 257 видеоразборов (168 YouTube, 55 VK, 34 Rutube). Для методов отобраны решения задач № 26869, 9949, 11261, 11264, 24804, 11240, 31079, 12475 и 25559; дополнительные примеры и видеоразборы — задачи № 313, 678, 1035, 3084, 3374, 16268, 18448, 24330, 27130, 28764 и 29457; примеры переработаны в учебные.

Разборы из видео

Задачи, которые разбирают в курсе

Условия и код показаны в кадре в конце соответствующего фрагмента. Источники задач — КомпЕГЭ, сайт К. Полякова, ФИПИ и другие.

№ 24801

разбор из видео · 2027

Траектория содержит ровно одно из чисел 24, 32

Исполнитель имеет команды +1, +2, +4, +8. Сколько программ из 16 в 48 проходят ровно через одно из чисел 24 и 32?

Ответ22681617

Полный архив

Все фрагменты видеоразборов

По одному пункту на каждую главу: условие или код из кадра, ответ и ссылка. Источники задач — КомпЕГЭ, сайт К. Полякова, ФИПИ и другие; номер берётся из кадра. Текст с экрана распознан автоматически, служебные строки и артефакты удалены; если текст нечитаем, остаются название, таймкод и ссылка.

Показать все фрагменты (36)
2027 · 00:00 Приветствие

(№ 4949) Псполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 2. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 вчисло 12 и при этом не содержат двух команд Прибавить

2027 · 05:40 Основа рекурсивного решения

В (№ 2478) Исполнитель Калькулятор преобразует число на экране. Сколько существует программ, для которых при исходном числе 2 результатом является число 16 и при этом траектория вычислений не содержит число 14?

2027 · 17:15 Траектории не содержат число

В (№ 2478) Исполнитель Калькулятор преобразует число на экране. исполнителя есть три команды, которым присвоены номера: Программа для исполнителя Калькулятор — это последовательность команд. (Сколько существует программ, для которых при исходном числе 2 результатом является число 16 и при этом траектория вычислений не содержит число 14?

def f(c,e):
if c>e or c==14; return 0
if c= return 1
return f(c+1,e)+f(c+2,e)+f(c*3,e)
2027 · 19:25 Траектории содержат число

(№ 5330) (ЕГЭ-2022) Исполнитель преобразует число, записанное на экране. У исполнителя есть две команды, которым присвоены номера: найди целую часть от деления на 2 Первая команла уменьшает число на экране Ha 2, вторая заменяет число на экране на целую часть от деления числа на 2. Сколько существует программ, для которых при исходном числе 28 результатом

2027 · 22:25 Траектории содержат число (+убывание)

Е (№ 9188) (Досрочный ЕГЭ-2026) У исполнителя имеются три команды, 4 Сколько существует программ, для которых при исходном числе 2 "результатом является число 25, и при этом траектория вычислений

2027 · 25:10 Комбинированное условие

{(% 3097) У исполнителя Калькулятор две команды, которым присвоены: 1.5 раза, если число чётное. К нечётным числам вторая команда неприменима. Сколько есть программ. которые число 2 преобразуют в

2027 · 26:55 Условные команды I 9195

В этом фрагменте — теория или пояснение; решение показано в видео.

2027 · 33:30 Преобразование числа I
def f(c,e):
return f(c+1,e)
2027 · 38:00 Преобразование числа II 31510

Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами: Первая из этих команд увеличивает число на экране на 1. Вторая команда применяется только к числу, у которого цифра в разряде десятков по значению меньше цифры, стоящей в разряде единиц, и действует, заменяя число на экране числом, в котором цифры двух младших разрядов поменялись местами. Программа для исполнителя - это последовательность команд. Сколько существует программ, для которых при исходном числе 100 результатом является число 1417 Траектория вычислений программы - это последовательность результатов выполнения всех команд программы. Например, для программы АВА при исходном

def f(c,e):
return
2027 · 47:25 Преобразование числа III 3147

В этом фрагменте — теория или пояснение; решение показано в видео.

2027 · 52:05 Условные команды II 24801

(Герасимчук В.) Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которые обозначены латинскими буквами: — Сколько существует программ, для которых при исходном числе 16 результатом является число 48, при этом траектория вычислений содержит ровно одно число из множества {24, 32}? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. 'Например, для программы ABD при исходном числе 10 траектория состоит из

2027 · 1:02:00 Разбиение на подслучаи I 24801

В этом фрагменте — теория или пояснение; решение показано в видео.

2027 · 1:06:00 Разбиение на подслучаи II 24803

(Cepacumuyk В.) Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами: А Найти целую часть от деления Ha 3 Программа для исполнителя - это последовательность команд, Сколько существует программ, для которых при исходном числе 68 результатом является число 4, при этом траектория вычислений не содержит Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. 'Например, для программы BBA при исходном числе 13 траектория состоит из.

def f(c,e):
return f(c//3,e)+f(c-3,e)
2027 · 1:08:05 Разбиение на подслучаи III 24800

(Герасимчук В.) Исполнитель преобразует число на экране. У исполнителя Ги) ав 257 4o есть три команды, которые обозначены латинскими буквами: 49 результатом является число 12, при этом траектория вычислений 4) CeTs 29) 270 содержит как минимум два числа из множества {40, 30, 20}?

2027 · 1:14:55 Учёт числа команд 2761

8 (№ 2761) Исполнитель Калькулятор преобразует число на экране. исполнителя есть три команды, которым присвоены номера: Сколько существует программ, состоящих из 6 команд, для

return f(c+1,e,S+1)+f(c+2,e,S+1)+f(c*2,e,s+1)
print(f(1,20,0))
2027 · 1:21:00 Число результатов программ длины N 3446

Поляков) У исполнителя Калькулятор есть три команды, которым присвоены номера: Сколько разных чисел может быть получено из числа 1 с помошью программ, состоящих malt команд?

2027 · 1:27:05 Длина кратчайшей программы 3443
from functools import *
return min(f(c+1,e,s+1), f(c+5,e,s+1), f(cx3,e,s+1))
print((1,227,0)) +
2027 · 1:39:30 Окончание и напутствие

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 00:00 Приветствие 4949

(№ 4949) Псполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 2. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 вчисло 12 и при этом не содержат двух команд Прибавить

2024 · 04:10 Предыдущие команды 1 4949

(№ 4949) Исполнитель Калькулятор преобразует число, P tud'ges Gore ha Тв, Фдей о записанное на экране. У исполнителя есть три команды, р которым присвоены номера: Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 2. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 12 и при этом не содержат двух команд Прибавить

def f(c,e,p):
return
2024 · 14:40 Смотрим визуализацию

исполнитель преобразует число Ha экране. У исполнителя есть две команды, которым присвоены номера: Первая команда увеличивает число на экране на 1. Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится число 1, то программа 212 последовательно преобразует его B 2.3, 6, Сколько существует программ, которые преобразуют исходное число 1 в число 16, и при этом никакая команда не повторяется более двух раз подряд?

2024 · 20:20 Предыдущие команды 2

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 29:40 Смотрим визуализацию

A (№ 5217) Исполнитель преобразует число, записанное на Е экране. У исполнителя есть три команды, которым Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья — умножает на 3. Сколько сушествует различных программ, которые преобразуют

2024 · 36:10 Счётчик команд 1 5217

(№ 5217) Исполнитель преобразует число, записанное на Ky Yenc 2 T Cle 4 A hoxe pug! У исполнителя есть три команлы, которым Умножь на 3 der ею:

2024 · 45:05 Смотрим визуализацию

(№ 5220) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым: Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья — умножает на 3. Сколько существует различных программ, которые преобразуют

2024 · 51:30 Счётчик команд 2

(№ 5220) Исполнитель преобразует число, записанное на ah LeTuka "ago экране. У исполнителя есть три команды, которым присвоены номера:

def fn(c,e,k0,k1):
if c= return kO>k1
2024 · 56:50 Смотрим визуализацию
def fn(c,e,k0,k1):
if c= return kO>k1
2024 · 1:02:35 Счётчик команд 3 5273

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Первая команда умножает число на экране на 5, вторая — "умножает на 3, третья — увеличивает на 45. Сколько существует различных программ, которые преобразуют вычислений не более 4 команд умножь на 5, не менее 2 команд умножь на 3, и ровно 5 команд прибавь 45?

return 0
print(fn(1,2970,0,0,0))
2024 · 1:06:35 Счётчик чисел

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Первая команда увеличивает число на экране на 2, вторая "умножает его на 2, третья — умножает на 3. Сколько существует различных программ, которые преобразуют вычислений содержит не более 6 нечётных чисел (не считая первое и последнее числа)?

2024 · 1:14:05 Смотрим визуализацию 5543

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Выполняя первую из них, исполнитель увеличивает число на экране на 2, выполняя вторую — умножает на 3, выполняя третью — умножает на 4. Программой для исполнителя называется последовательность команд. Сколько существует "различных программ, которые преобразуют исходное число 1 в число 600, и при этом траектория вычислений не содержит двух пдуших подряд нечётных чисел.

2024 · 1:19:10 Предыдущие числа 1 5543

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Выполняя первую из них, исполнитель увеличивает число на экране на 2, выполняя вторую — умножает на 3, выполняя третью — умножает на 4. Программой для исполнителя называется последовательность команд. Сколько существует "различных программ, которые преобразуют исходное число "содержит двух идуших подряд нечётных чисел.

if c= return 1
print(fn(1,600,0))
2024 · 1:26:10 Смотрим визуализацию 5544

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Выполняя первую из них, исполнитель увеличивает число на экране на 2, выполняя вторую — умножает на 3, выполняя третью — умножает на 4. Программой для исполнителя называется последовательность команд. Сколько существует "различных программ, которые преобразуют исходное число 1 вчисло 600, 11 при этом траектория вычислений (включая начальное число) содержит три подряд идуших числа, сумма

2024 · 1:30:20 Предыдущие числа 2

У исполнителя есть три команды, которым присвоены номера: Прибавь 2 Я Иды акте Of САдТС, 6 р р Выполняя первую из них, исполнитель увеличивает число на экране на 2, выполняя вторую — умножает на 3, выполняя третью — умножает на 4. Программой для исполнителя называется последовательность команд. Сколько существует различных программ, которые преобразуют исходное число 1 в число 600, п при этом траектория вычислений (включая начальное число) содержит три подряд идущих числа, сумма

def fn(c,e,c0,c1, flag):
return @
return flags=1
return fn(c+2,e,c,cO, flag)+fn(cx3,e,c,c0, flag)+fn(c*4,e,c,c0, flag)
print(fn(1,600,0,0,0))
2024 · 1:39:20 Смотрим визуализацию 5544

Шагитов) Исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Выполняя первую из них, исполнитель увеличивает число на экране на 2, выполняя вторую — умножает на 3, выполняя третью — умножает на 4. Программой для исполнителя называется последовательность команд. Сколько существует различных программ, которые преобразуют исходное число 1 в число 600, и при этом траектория вычислений (включая начальное число) содержит три подряд идущих числа, сумма

def fn(c,e,cO,ci, flag):
return @
return flags=1
print(fn(1,600,0,0,0))
2024 · 1:44:50 Комбинированные условия 5074

Бычков) Исполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: "увеличивает его на 2, третья — умножает на 2. Программа для исполнителя — это последовательность команд. Сколько сушествует программ, которые преобразуют исходное число 3 в число 79, и при этом траектория вычислений содержит число 11 п не содержит число 23.

2024 · 1:55:40 Окончание и напутствия 5074

Бычков) Исполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера: Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 2. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 3 в число 79, п при этом траектория вычислений содержит число 11 и не содержит число 23. Также программа не „должна содержать двух команд Прибавь 1 позрят.

from functools import *
c==23: return @
return f:

Типичные ошибки

  • считают траектории вместо программ
  • забывают проверить условие применимости команды
  • не учитывают обязательное или запрещённое число
  • теряют параметр ограничения
  • неверно обрабатывают команды над цифрами
  • слишком глубокая рекурсия без memoization

Практика

Навигатор и методические рекомендации опубликованы в 2026 году: номера заданий в них могут отличаться от нумерации 2027 года. Ориентируйтесь на тему.