Разбор ЕГЭ по информатике (пересдача)
Ключевые тезисы:
- Разбор задач из ЕГЭ по информатике (основная волна и пересдача)
- Акцент на типичных ошибках и сложных моментах
- Практические решения с использованием Python
- Важность внимательного чтения условий и понимания формулировок
Общие замечания по задачам (1-12)
Задачи 1-12 считаются базовыми и решаются стандартными методами.
- Задачи 1-4, 6, 8, 9, 12: Стандартные задачи на графы, логику, кодирование информации, работу с файлами (Excel, Python). Требуют аккуратности.
- Задача 5: Была опечатка в примере на реальном экзамене, но сама задача простая (двоичная запись).
- Задача 7 (Звук):
Ключевой момент! Внимание на формулировку:- Если спрашивают "сколько килобайт потребуется для сохранения" → округляем вверх.
- Если есть уточнение "в ответе укажите целую часть" → округляем вниз.
- Задача 10: Решается через текстовый редактор (поиск).
- Задача 11 (Кодирование): Используется стандартный шаблон:
Объем = (Длина * Биты_на_символ) / 8. Не забываем про округление вверх при переводе в байты.
Решение задач с помощью Python (13-27)
Задача 13 (IP-адреса)
- IP-адрес сети — это самый первый адрес в сети.
- Решение: взять IP-адрес узла и применить к нему маску сети (логическое И). Суммировать полученные октеты.
Задача 14 (Арифметическое выражение)
- Перебираем
x, вычисляем выражение, переводим в пятеричную систему. - Ищем
x, при котором количество нулей в записи максимально.
Задача 16 (Рекурсия)
- Задачу можно решить, выразив все переменные друг через друга.
- Пример:
B = F(3, 2, 3, 7) = 3237 * C. Подстановка позволяет упростить вычисления.
Задача 17 (Последовательность)
- Стандартная задача на обработку последовательности.
- Находим минимальный положительный элемент, кратный 33.
- Считаем пары, где разность элементов делится на этот минимальный элемент.
Задача 22 (Параллельные процессы)
- Нужно определить, сколько процессов фактически выполняется на заданной миллисекунде.
- Каждый процесс стартует в самое раннее возможное время.
- Алгоритм: Составляем таблицу с временем начала и окончания каждого процесса. Для каждого процесса:
Время_окончания = max(Время_окончания_зависимых_процессов) + Время_выполнения. - Процесс выполняется на N-й миллисекунде, если
(Начало <= N-1) и (Окончание >= N).
Задача 23 (Исполнитель)
- Нужно найти количество программ, преобразующих одно число в другое.
- Пишем рекурсивную функцию, которая:
- Если
A == B, путь засчитан. - Если
A > B, путь невозможен. - Рекурсивно вызываем себя для команд
A+1и для команды обмена цифр (если применимо).
- Если
- Команда обмена цифр:
int(x[-1] + x[-2]), гдеx— строковое представление числа, и выполняется условиеx[-1] > x[-2].
Задача 24 (Регулярные выражения)
- Стандартная задача на поиск арифметических выражений в строке.
- Используется регулярное выражение для поиска шаблонов вида
(число)(знак)(число), где знак —-или*. - Пример паттерна для числа:
(1|9)[09]*|0.
Задача 25 (Произведение простых множителей)
- Найти числа, представимые в виде произведения ровно двух простых множителей.
- Каждый множитель должен ровно один раз содержать в записи подстроку "67".
- Алгоритм:
- Перебираем числа.
- Для каждого числа ищем все делители.
- Проверяем, что делителей ровно два, и оба — простые.
- Проверяем, что в строковом представлении каждого делителя
count('67') == 1.
- Важно: Оптимизировать проверку на простоту и поиск делителей.
Задача 26 (Журнал сервера)
- Обработка потока данных с ограниченным буфером.
- Часть 1: Найти клиента с максимальным суммарным объёмом данных, переданных до 11:59:59.
- Проходим по журналу, суммируем объёмы по ID для записей с временем <= 11:59:59.
- Часть 2: Найти сумму двух наибольших резервных копий.
- Имитируем работу буфера. Когда новый запрос не помещается, "сбрасываем" текущий объём буфера в список
резервов, очищаем буфер и добавляем новый запрос. - В конце находим два максимальных значения в списке
резервови суммируем их.
- Имитируем работу буфера. Когда новый запрос не помещается, "сбрасываем" текущий объём буфера в список
Задача 27 (Кластеризация звёзд)
- Длинная задача на обработку данных из файла.
- Основные шаги:
- Кластеризация: Звезды объединяются в кластер, если расстояние между ними <= 1.
- Поиск центра кластера: Точка, сумма расстояний от которой до всех других точек кластера минимальна.
- Ответы для файла A:
A1: Количество "красных гигантов" (маркировкаM...3) на расстоянии <=1.0 от центра наименьшего кластера.A2: Расстояние между центрами двух кластеров.
- Ответы для файла B:
B1: Наименьшее расстояние от центра любого кластера до "голубого гиганта" (O...3) внутри этого кластера.B2: Наибольшее количество "жёлтых карликов" (G...V) в одном кластере.
Полезные советы и ресурсы
- Telegram-канал "ИТ-шники": Сообщество для вопросов о вузах и поступлении. Там есть гайды и отзывы.
- Внимательность к условию: Всегда перечитывайте вопрос, особенно в задачах на объём памяти (№7) и интерпретацию данных.
- Инструменты: Для решения многих задач (№9, №22, №24) эффективно использовать Excel или аналоги.
- Римские числа (Задача 24, День 2): Можно сгенерировать все корректные римские числа (до 3000) с помощью функции
РИМСКОЕ()в Excel и использовать этот список для поиска в строке.
Выводы
- База решена — баллы в кармане: Задачи 1-12, 15, 18-21 должны быть отработаны до автоматизма.
- Внимание к деталям: Много ошибок возникает из-за невнимательного чтения (округление, единицы измерения, формулировки "целая часть").
- Практика программирования: Задачи 13, 16, 17, 23-27 требуют уверенного владения Python для обработки данных, рекурсии и работы с файлами.
- Стратегия на экзамене: Начинайте с простых задач, оставляйте время на сложные (26, 27). Используйте все доступные инструменты (Excel, калькулятор, черновик).