решай.ai · шпаргалка
Задание 23: Оператор присваивания и ветвления. Перебор вариантов, построение дерева
ЕГЭ Информатика
Как выглядит
Типичная формулировка: "Исполнитель преобразует число на экране. У исполнителя есть команды с номерами 1, 2, 3... Программа — последовательность команд. Сколько существует программ, которые переводят число в число , при этом траектория вычислений содержит (не содержит) число ?"
…
Что нужно знать
- Исполнитель — объект с фиксированным набором команд; каждая команда — функция, однозначно преобразующая число.
- Программа — конечная последовательность номеров команд, применяемых по порядку.
- Траектория вычислений — последовательность чисел, полученных после каждой команды (исходное число в неё не входит, конечное — входит).
- Принцип умножения: если путь состоит из двух независимых участков, реализуемых и способами, общее число программ равно .
- Рекуррентная формула количества программ, приводящих число к числу через набор команд с приростами (или деление для обратной операции умножения): где , а , если значение недостижимо (меньше или не получается ни одной командой).
- Правило обязательного этапа: если траектория обязана содержать число , то
- Правило избегаемого этапа: чтобы запретить прохождение через , при построении таблицы полагают независимо от того, что дала бы формула, — тогда все более дальние значения автоматически не учитывают пути через .
Алгоритм
- Выписать все команды и числовые операции, которые они выполняют.
- Определить исходное число и целевое ; убедиться, что команды монотонны (только увеличивают или только уменьшают число) — это гарантирует, что таблицу можно строить по возрастанию (или убыванию) без циклов.
- Если есть обязательное число : разбить задачу на две части — от до и от до . Построить таблицу для каждой части отдельно, начиная считать заново с единицы на старте своего участка.
- Если есть избегаемое число : строить единую таблицу от до , но на каждом шаге, когда таблица "доходит" до значения , принудительно поставить и продолжать расчёт дальше как обычно. …
Ловушки
- Забывают, что исходное число не входит в траекторию, а конечное — входит; это меняет, какие значения нужно "закрывать" запретом.
- При обязательном этапе начинают вторую таблицу не с единицы на самом числе , а продолжают первую таблицу — это даёт неверный результат, так как вторая часть пути должна считаться как отдельная задача с новым стартом.
- При работе с командой умножения/деления забывают проверить, что частное целое и не меньше стартового значения — иначе в таблицу попадают несуществующие переходы.
- При избегаемом этапе вычитают количество "плохих" путей из общего числа вместо того, чтобы просто обнулить значение в таблице на нужном шаге — это приводит к двойному учёту или потере части путей. …
reshay.ai/ege/informatika/zadanie-23 — задачи с разборами и тренажёр