27 задание ЕГЭ по информатике: разбор и шаблон кода
Чтобы решать задание № 27 по информатике на обработку потока чисел, нужно перевести условие в правила отбора и хранить только данные, необходимые для ответа. Разберём задачи на пары: как заменить полный перебор учётом остатков, одновременно посчитать подходящие пары и найти максимальную сумму.
Задание № 27: как решать задачи на обработку данных
Начинай с условия конкретной задачи. Номер задания сам по себе не определяет алгоритм: требования к данным и способу обработки могут различаться. В этой статье рассматриваем числовые последовательности и пары элементов. Для подготовки к экзамену сверяй тематику с официальными материалами нужного года.
До программирования выпиши четыре вещи: что поступает на вход, какие элементы можно объединять, какое условие должна выполнять пара и что требуется вывести. Подсчёт пар и поиск максимальной суммы — разные действия, даже если они используют одинаковые группы остатков.
Особенно внимательно читай ограничения на позиции. Различные по положению элементы могут иметь одинаковые значения. Две одинаковые записи в файле — два элемента, а не один. Если условие дополнительно ограничивает расстояние между ними, простой алгоритм из этой статьи потребуется изменить.
- Уточни, рассматриваются ли пары внутри каждого набора отдельно.
- Проверь, зависит ли допустимость пары от порядка или расстояния между элементами.
- Запиши порядок величин в ответе до запуска программы.
- Не переноси ограничения из предыдущей задачи в новую.
Задание № 27 по информатике: разбор пар и остатков
Пусть сумма двух целых чисел должна делиться на 6. Тогда остатки этих чисел при делении на 6 должны дополнять друг друга: 0 сочетается с 0, 1 — с 5, 2 — с 4, 3 — с 3. Поэтому вместо хранения всех предыдущих чисел можно поддерживать шесть групп.
Для нового числа x вычисли остаток r = x % 6. Подходящий остаток второго элемента равен need = (-r) % 6. Если среди уже обработанных чисел есть k элементов с таким остатком, новое число образует ровно k новых подходящих пар. Прибавь k к общему счётчику.
Чтобы найти максимальную сумму, дополнительно храни наибольшее ранее встреченное число каждой группы. Для фиксированного x подходящий максимум даёт наибольшую сумму. Сначала проверь пару с предыдущими элементами, затем добавь x в его группу: так число не встретится само с собой.
- Счётчик группы отвечает на вопрос «сколько новых пар появилось?».
- Максимум группы отвечает на вопрос «какую наибольшую сумму можно получить с текущим числом?».
- Каждая пара учитывается один раз — при обработке её более позднего элемента.
- Для групп с остатками 0 и 3 действует тот же порядок обновления.
Пример задания из банка «Ранга»
В следующем примере нужно одновременно считать подходящие пары и искать максимальную сумму. Он поможет проверить порядок обновления остатков и независимую обработку двух наборов данных.
Условие. Имеются два набора данных — набор A и набор B (в живом экзамене это два прикреплённых файла, здесь наборы приведены в условии):
набор A: 198, 968, 543, 706, 292, 122, 305, 336, 95, 468, 199, 427, 593, 831, 144, 653, 168, 289, 398, 591, 326, 149, 190, 532, 77, 136, 371, 364, 686, 277
набор B: 899, 71, 195, 579, 370, 434, 645, 379, 773, 828, 535, 957, 919, 644, 623, 923, 845, 630, 392, 819, 236, 877, 797, 972, 53, 398, 741, 833, 537, 341
Рассматриваются все пары элементов набора, состоящие из двух различных по положению элементов одного набора. Нужно найти такую пару, сумма элементов которой делится на 6 и при этом максимальна.
Для каждого набора определи количество пар, сумма которых делится на 6, и максимальную из таких сумм.
В ответе запиши четыре числа через пробел: количество пар и максимальную сумму для набора A, затем количество пар и максимальную сумму для набора B.
Показать ответ и решение
- Пары, сумма которых делится на заданное число, удобно считать по остаткам: подходят пары остатков, дающие в сумме ноль по модулю. Максимум суммы при этом ищется среди наибольших элементов подходящих групп.
- Разложи числа набора по остаткам от деления — групп ровно столько, каков делитель.
Ответ: 71 1674 69 1842
Задание № 27 по информатике: код и шаблон
Функция ниже принимает последовательность целых чисел и делитель m. Она подходит для условия без дополнительных ограничений на расстояние между элементами. Делитель должен быть положительным. Результат — количество подходящих пар и максимальная сумма; None означает, что подходящих пар нет.
def solve(values, m=6): counts = [0] * m maxima = [None] * m pairs = 0 best = None for x in values: r = x % m need = (-r) % m pairs += counts[need] if maxima[need] is not None: candidate = x + maxima[need] if best is None or candidate > best: best = candidate counts[r] += 1 if maxima[r] is None or x > maxima[r]: maxima[r] = x return pairs, best
Время работы пропорционально количеству чисел, а дополнительная память — делителю. При m = 6 размер служебных массивов остаётся постоянным. Последовательность можно передавать постепенно, не загружая весь файл в список.
Чтение файла настраивай по условию. Если первая строка содержит количество элементов, обработай её отдельно. Если заголовка нет, первое число тоже участвует в решении. Для наборов A и B вызывай функцию отдельно: состояние счётчиков между наборами переносить нельзя.
- Не заменяй None нулём: допустимые суммы могут быть отрицательными.
- Не подставляй произвольный ответ вместо None — поведение при отсутствии пар определяет условие.
- Перед выводом разложи результаты двух вызовов в требуемом порядке.
Как проверить решение задания № 27
Проверяй оптимизированный алгоритм независимым способом. На коротком списке перебери все индексы i и j, где i < j. Для каждой пары проверь делимость суммы, увеличь счётчик и обнови максимум. Такой перебор медленно работает на больших данных, зато подходит для проверки небольших примеров.
Сравнивай обе величины: совпавший максимум ещё не доказывает правильность подсчёта. Отдельно проверь список из одного элемента, повторяющиеся значения, несколько чисел одной группы и случай без подходящих пар. Если условие разрешает отрицательные числа, включи их в проверку.
Для дополнительного контроля переставь элементы исходного списка. Когда ограничений на позиции нет, количество пар и максимальная сумма сохраняются. Если результат изменился, проверь порядок обновления массивов и сброс переменных. Для случайных коротких списков сравнение с полным перебором помогает обнаружить ошибки, которые не проявились на одном примере.
- Пары с остатками 0 и 0, а также 3 и 3 требуют двух различных позиций.
- Одинаковые значения нельзя удалять через множество: это меняет количество пар.
- При ручной проверке помечай позиции, чтобы не считать одну пару дважды.
- После исправления ошибки повторно проверь оба набора данных.
Задание № 27 по информатике через Excel
Электронная таблица полезна для исследования небольшого набора. Размести числа в одном столбце, а рядом вычисли остатки от деления на 6. Затем для каждого остатка найди количество элементов и максимальное значение. Это наглядно показывает, какие группы участвуют в подсчёте.
Количество пар между разными группами равно произведению их размеров. Для группы, которая сочетается сама с собой, используй c * (c - 1) / 2, где c — количество её элементов. В рассматриваемом случае сложи результаты для сочетаний 0–0, 1–5, 2–4 и 3–3.
Для максимальной суммы есть отдельная тонкость: в группах 0 и 3 нужны два наибольших элемента с разных позиций. Удвоение единственного максимума недопустимо. Для разных групп достаточно взять максимум каждой, если обе непустые. Повторяющиеся максимальные значения можно использовать вместе, когда они действительно встречаются в двух позициях.
- Проверь, что импортированные значения распознаны как числа.
- Исключи заголовок с количеством элементов из диапазона данных.
- При больших объёмах оцени удобство обработки и проверки таблицы.
- Сверь доступность нужного программного обеспечения с официальными условиями экзамена.
Как готовиться по актуальным материалам
Если ищешь задания ЕГЭ по информатике на 2027 год, сначала проверь публикации ФИПИ. В разделе с демонстрационными вариантами выбери нужный год и предмет, открой демоверсию, спецификацию и кодификатор. По ним уточняй содержание задания № 27, формат ответа и критерии оценивания. Материалы прошлого года используй для тренировки с учётом возможных изменений.
Сведения о проведении экзамена проверяй по публикациям Рособрнадзора. Не считай название файла или подпись к чужому разбору подтверждением актуальности. Для тренировочного варианта зафиксируй источник, год и конкретное условие: это поможет понять, почему знакомый шаблон подходит или требует доработки.
Выстрой практику последовательно: сначала подсчёт пар по остаткам, затем максимум суммы, после — задачи с дополнительными ограничениями. В «Ранге» можно потренироваться с проверкой ответа или пройти бесплатный тест. После ошибки запиши её причину: неверно прочитанное условие, неподходящий алгоритм, ошибка кода или порядок вывода.
- Перед решением сформулируй, что именно хранит каждая переменная.
- После решения сравни алгоритм с полным перебором на коротких данных.
- Через несколько дней повтори задачу без подсказки и объясни порядок обновлений.
Частые вопросы
Сколько баллов дают за задание № 27 по информатике?
Проверь максимальный балл и правила оценивания в спецификации ФИПИ нужного года. Обрати внимание, как оценивается каждый элемент ответа: это поможет понять последствия ошибки в одной из величин.
Можно ли использовать один шаблон для любого задания № 27?
Один шаблон подходит только для определённого условия. Например, ограничение на расстояние между элементами меняет момент добавления числа в счётчики, а условие на произведение требует другого анализа остатков.
Чем полезен разбор задания № 27 из досрочного варианта?
Он даёт дополнительное условие для тренировки выбора алгоритма. Сначала установи источник материала и реши задачу самостоятельно, затем сравни ход решения; похожее название не означает полного совпадения требований.
Почему код находит правильную максимальную сумму, но неверное количество пар?
Проверь, не удалены ли повторяющиеся значения и не считаются ли пары в обоих направлениях. Ещё одна причина — добавление текущего элемента в счётчик до проверки пары, из-за чего он может учитываться вместе с собой.
Нужно ли учиться решать задание № 27 в экселе, если я пишу на Python?
Используй таблицу, если она помогает разобраться в группах остатков и проверить короткий пример. Для основной практики выбери способ, в котором можешь объяснить алгоритм, проверить результат и обработать заданный объём данных.
Полезно по теме
Читать дальше
Проверить себя в тренажёре
Открывается тренировочное задание в формате ЕГЭ: условие видно сразу, краткий ответ проверяется без регистрации.
Решить задание в тренажёреМатериал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.