Задание 5 ЕГЭ: посимвольные преобразования чисел в n-ичных системах
Подтемы
- Посимвольное двоичное преобразование54 задач
- Посимвольное преобразование в n-ричной системе счисления14 задач
Что проверяет задание
Задание 5 проверяет умение анализировать алгоритм, заданный словесно, который берёт натуральное число , переводит его в некоторую систему счисления (обычно двоичную или троичную, иногда работает прямо с десятичными цифрами), выполняет над цифрами простое преобразование и получает новое число . Нужно либо промоделировать алгоритм для конкретного , либо, наоборот, восстановить по известному и дополнительным условиям (минимальное/максимальное значение, ограничение на диапазон). Проверяется не программирование, а точное понимание позиционной записи числа и умение выразить шаги алгоритма формулами.
Как выглядит формулировка и сколько баллов
Типичная формулировка: «Алгоритм получает на вход натуральное число и строит по нему новое число : 1) переводит в систему с основанием ; 2) выполняет посимвольное преобразование цифр (замена, дополнение, дописывание); 3) переводит результат обратно в десятичную систему; 4) иногда добавляется финальный шаг — разность, сумма или сравнение с исходным числом». Дальше задаётся вопрос: найдите наибольшее/наименьшее или , удовлетворяющее условию (например, не превышающее данное число, или дающее конкретный результат).
Задание относится к части с кратким ответом, оценивается в 1 первичный балл, ответ — целое число, вводится без пояснений, поэтому единственная ошибка в вычислении полностью обесценивает решение.
Что нужно знать
- Позиционная запись числа в системе с основанием : , где , .
- Число цифр представления в основании определяется условием .
- Перевод из десятичной системы в систему с основанием — последовательное деление на с выписыванием остатков от последнего к первому.
- Дополнение цифры в системе с основанием : замена на . Для троичной системы это замена , единица остаётся на месте.
- Если у числа с цифрами в основании заменить каждую цифру на , то новое число (посчитанное с той же длиной , даже если появляются ведущие нули) равно . Удаление ведущих нулей не меняет численного значения , меняется только запись.
- Дописывание к записи числа (длина цифр) блока из цифр со значением равносильно операции .
- Для двоичного случая () дополнение цифры — это инверсия бита: , а формула дополнения принимает вид , что совпадает с побитовым «НЕ» числа в пределах разрядов.
- Для задач, где преобразование идёт по десятичным цифрам «окнами» (например, тройки соседних цифр), нужно помнить: для числа из цифр при окне длины получается окон.
Методы решения
1. Формульный метод через основание и длину числа. Вместо ручного перевода каждого конкретного числа выражаем результат алгоритма как формулу от и числа цифр . Это ключевой приём для задач «замена цифр по правилу дополнения», где .
2. Метод перебора по остатку/разряду. Когда правило преобразования зависит от остатка от деления на небольшое число (например, «если кратно 3», «если не кратно»), удобно разбить задачу на случаи по значению остатка и в каждом случае вывести отдельную формулу для , а затем сравнить максимумы.
Мини-пример: если по правилу для чётных дописывается цифра 0, а для нечётных — цифра 1, то либо соответственно — из двух формул выбираем нужный случай по чётности.
3. Метод скользящего окна по цифрам. Для задач, где рассматриваются подряд идущие группы цифр десятичной записи (например, тройки), удобно обозначить цифры как и выразить каждое окно как трёхзначное число: . Разность между окнами превращается в линейное уравнение относительно цифр.
4. Метод обратного построения (от к ). Составляем уравнение и решаем его в целых цифрах с учётом ограничений , а также условия, что число реально имеет длину (то есть старшая цифра не равна нулю, либо явное неравенство ). Перебираем от меньших значений к большим, ищем допустимое решение.
5. Битовый метод для двоичных преобразований. Если преобразование — инверсия каждого бита в записи длиной , результат до сложения с исходным числом равен ; если алгоритм затем складывает или вычитает результат с , сумма всегда равна , а разность равна — та же логика, что в троичном случае, но с основанием 2.
Алгоритм решения по шагам
- Определить основание системы , в которой строится запись числа (двоичная, троичная, десятичная «по цифрам»).
- Расписать шаг преобразования как операцию над отдельной цифрой или как операцию над группой цифр (окно, дописывание, дополнение).
- Найти длину представления в этой системе как функцию от диапазона значений (через неравенство ).
- Вывести формулу , отражающую весь алгоритм целиком (включая финальные операции — разность, сумму, сравнение).
- Если требуется найти по известному — составить уравнение , решить относительно при разных , начиная с наименьших, и на каждом шаге проверять, что найденное действительно попадает в диапазон, соответствующий выбранному .
- Если требуется найти максимум/минимум (или ) при ограничении — рассмотреть все случаи алгоритма, вывести формулу для каждого случая, найти границы допустимых внутри случая и выбрать оптимальное значение.
- Перевести финальный результат в десятичную систему, если ответ требуется именно в ней, и сверить его подстановкой в исходное словесное описание алгоритма.
Разбор примеров
Пример 1
Условие: строим троичную запись ; если кратно 3 — дописываем к записи её последние две троичные цифры; если не кратно — остаток от деления умножаем на 5, переводим в троичную систему и дописываем. Нужно найти максимальное .
Случай кратно 3. Последняя троичная цифра такого числа всегда равна 0, а предпоследняя — произвольная цифра . Дописывание двух последних цифр равносильно операции , где в зависимости от : при , при , при .
Максимизируем по подслучаям: при () наибольшее , ; при () наибольшее , ; при () наибольшее (так как , а ), тогда .
Случай не кратно 3. Остаток : — 2 цифры, , нужно , максимум даёт , . Остаток : — 3 цифры, , нужно , максимум даёт , .
Сравнивая значения , наибольшее — , что и является ответом.
Пример 2
Условие: в десятичной записи рассматриваются все тройки соседних цифр как трёхзначные числа, среди них ищутся максимум и минимум, результат — их разность. Найти наименьшее , дающее .
Для минимизации выгодно взять наименьшее возможное количество цифр. При трёх цифрах есть только одно окно, разность равна 0 — не подходит. Берём четыре цифры , тогда есть два окна: и , разность между ними .
Рассматриваем оба знака. Если больше: ; при малых левая часть не достигает 415, первое подходящее значение даёт .
Если больше: . При нужно ; так как , требуется ; при получаем , единственное решение . Число .
Так как , а бо́льшие во втором случае дают ещё бо́льшие числа, минимальным решением среди четырёхзначных чисел оказывается ; пятизначные числа заведомо больше. Ответ: .
Пример 3
Условие: строится троичная запись , цифры и меняются местами, ведущие нули убираются, результат переводится в десятичную систему, итог — модуль разности и полученного числа. Найти наименьшее , дающее .
Пусть — количество троичных цифр числа , то есть . Замена во всех цифрах равносильна формуле дополнения — удаление ведущих нулей не меняет численного значения . Тогда .
Проверка на примере из условия: , , , — совпадает.
Решаем , перебирая от малых значений. При () решений, удовлетворяющих диапазону длины, нет. При (): , что лежит в диапазоне — подходит. Второй вариант при даёт , то есть относится к другой длине и не подходит. При значения только возрастают. Минимальное подходящее число — .
Типичные ошибки и ловушки
- Путают удаление ведущих нулей с изменением численного значения — на самом деле оно не меняется, меняется только длина записи.
- Забывают проверить, что найденное решение действительно имеет ту длину , которая использовалась при выводе формулы; без этой проверки можно получить «лишний» корень, не удовлетворяющий условию.
- В задачах с остатком от деления путают, какая операция применяется к остатку, а какая — к самому числу.
- В задачах со скользящим окном забывают, что число окон равно (число цифр − длина окна + 1), и упускают одно из окон на краю записи.
- Рассматривают только один знак модуля или только один порядок операндов в разности, теряя часть решений.
- Допускают арифметические ошибки при переводе чисел в другую систему счисления вручную — стоит проверять перевод контрольной подстановкой обратно по формуле .
- При поиске минимального/максимального значения перебирают варианты не по возрастанию длины числа, из-за чего пропускают более выгодный ответ, лежащий при другой длине.
Как готовиться
- Довести до автоматизма перевод чисел между десятичной и системами с основаниями 2, 3, 8, 16 — как в прямом, так и в обратном направлении, без калькулятора.
- Для каждой новой задачи сначала записывать общую формулу через основание системы и длину числа, а не сразу подбирать конкретные числа — это резко снижает число ошибок.
- Отдельно тренировать формулу дополнения и её частные случаи для и , так как она встречается в большинстве вариантов на эту подтему.
- Прорешать подряд несколько задач банка заданий с разными правилами «дописывания» цифр, чтобы наработать навык быстрого перехода от словесного описания к формуле.
- После получения ответа обязательно подставлять найденное число в исходный алгоритм «вручную» и проверять, что результат совпадает с условием — это главный способ отловить ошибку в диапазоне длины .
- Заучить степени 2 и 3 хотя бы до пятнадцатого-двадцатого порядка — это экономит время на экзамене при переборе значений .
Частые вопросы
Как быстро определить, сколько цифр займёт число N в системе с основанием n?
Нужно найти k из неравенства , то есть k — это округлённый вверх логарифм N по основанию n плюс единица; проще последовательно сравнивать N со степенями n.
Меняется ли численное значение числа, если после замены цифр убрать ведущие нули?
Нет, значение не меняется — ведущие нули не влияют на величину числа, они влияют только на его формальную запись и видимую длину.
Как определить количество окон в задаче со скользящим окном по цифрам?
Если число содержит d цифр, а окно состоит из m цифр, то количество окон равно d-m+1; например, для 5-значного числа и окна из 3 цифр получится 3 окна.
Можно ли решать такие задачи прямым перебором чисел без вывода формул?
Для небольших диапазонов N это возможно, но при больших искомых значениях R или N перебор занимает слишком много времени, поэтому надёжнее сразу выводить формулу R(N,k).
Какая ошибка чаще всего приводит к неверному ответу в задачах на восстановление N по R?
Чаще всего забывают проверить, что найденное N действительно имеет ту длину k, для которой была выведена формула — без этой проверки можно принять посторонний корень.
Нужно ли уметь программировать, чтобы решать задание 5?
Нет, задание проверяет умение формализовать алгоритм математически, а не написать код; достаточно грамотно работать с формулами позиционных систем счисления.
Как проверить правильность найденного ответа перед тем, как его записать?
Нужно подставить полученное число обратно в исходный алгоритм по шагам словесного описания и убедиться, что результат совпадает с тем, что требуется в условии задачи.