решай.ai · шпаргалка

Задание 5: Анализ и построение алгоритмов для исполнителей

ЕГЭ Информатика

Как выглядит

Типичная формулировка: «Алгоритм получает на вход натуральное число NN и строит по нему новое число RR: 1) переводит NN в систему с основанием nn; 2) выполняет посимвольное преобразование цифр (замена, дополнение, дописывание); 3) переводит результат обратно в десятичную систему; 4) иногда добавляется финальный шаг — разность, сумма или сравнение с исходным числом». Дальше задаётся вопрос: найдите наибольшее/наименьшее NN или RR, удовлетворяющее условию (например, не превышающее данное число, или дающее конкретный результат).

…

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

  • Позиционная запись числа в системе с основанием nn: N=∑i=0k−1ainiN = \sum_{i=0}^{k-1} a_i n^i, где ai∈{0,1,…,n−1}a_i \in \{0,1,\dots,n-1\}, ak−1≠0a_{k-1}\neq 0.
  • Число цифр kk представления NN в основании nn определяется условием nk−1≤N≤nk−1n^{k-1} \le N \le n^k-1.
  • Перевод из десятичной системы в систему с основанием nn — последовательное деление на nn с выписыванием остатков от последнего к первому.
  • Дополнение цифры в системе с основанием nn: замена aia_i на (n−1)−ai(n-1)-a_i. Для троичной системы это замена 0↔20\leftrightarrow 2, единица остаётся на месте.
  • Если у числа с kk цифрами в основании nn заменить каждую цифру aia_i на (n−1)−ai(n-1)-a_i, то новое число (посчитанное с той же длиной kk, даже если появляются ведущие нули) равно M=(nk−1)−NM = (n^{k}-1) - N. Удаление ведущих нулей не меняет численного значения MM, меняется только запись.
  • Дописывание к записи числа NN (длина kk цифр) блока из mm цифр со значением vv равносильно операции R=N⋅nm+vR = N\cdot n^{m} + v.
  • Для двоичного случая (n=2n=2) дополнение цифры — это инверсия бита: ai→1−aia_i \to 1-a_i, а формула дополнения принимает вид M=(2k−1)−NM = (2^k - 1) - N, что совпадает с побитовым «НЕ» числа NN в пределах kk разрядов.
  • Для задач, где преобразование идёт по десятичным цифрам «окнами» (например, тройки соседних цифр), нужно помнить: для числа из dd цифр при окне длины mm получается d−m+1d-m+1 окон.

Алгоритм

  1. Определить основание системы nn, в которой строится запись числа (двоичная, троичная, десятичная «по цифрам»).
  2. Расписать шаг преобразования как операцию над отдельной цифрой или как операцию над группой цифр (окно, дописывание, дополнение).
  3. Найти длину kk представления NN в этой системе как функцию от диапазона значений NN (через неравенство nk−1≤N≤nk−1n^{k-1}\le N\le n^k-1).
  4. Вывести формулу R(N,k)R(N,k), отражающую весь алгоритм целиком (включая финальные операции — разность, сумму, сравнение).
  5. Если требуется найти NN по известному RR — составить уравнение R=f(N,k)R=f(N,k), решить относительно NN при разных kk, начиная с наименьших, и на каждом шаге проверять, что найденное NN действительно попадает в диапазон, соответствующий выбранному kk. …

Ловушки

  • Путают удаление ведущих нулей с изменением численного значения — на самом деле оно не меняется, меняется только длина записи.
  • Забывают проверить, что найденное решение NN действительно имеет ту длину kk, которая использовалась при выводе формулы; без этой проверки можно получить «лишний» корень, не удовлетворяющий условию.
  • В задачах с остатком от деления путают, какая операция применяется к остатку, а какая — к самому числу.
  • В задачах со скользящим окном забывают, что число окон равно (число цифр − длина окна + 1), и упускают одно из окон на краю записи.
  • Рассматривают только один знак модуля или только один порядок операндов в разности, теряя часть решений.
  • Допускают арифметические ошибки при переводе чисел в другую систему счисления вручную — стоит проверять перевод контрольной подстановкой обратно по формуле ∑aini\sum a_i n^i. …
reshay.ai/ege/informatika/zadanie-5 — задачи с разборами и тренажёр

Полный гайд и задачи задания 5 →