Алгоритм решения задания 25 ЕГЭ по информатике. Часть 1

Алгоритм решения задания 25 ЕГЭ по информатике. Часть 1Если вы думаете, что задания ЕГЭ по информатике — это скучные головоломки для тех, кто любит считать до бесконечности и обратно, спешу вас разубедить! Особенно когда речь заходит о задании 25, где без программирования не обойтись.

Представьте себе: вам нужно обработать горы числовой информации — и делать это вручную сродни попытке пересчитать песчинки на пляже во время шторма. Серьёзно, если вы возьмётесь за это без компьютера, то к моменту окончания подсчёта ваши волосы станут седыми, а кот начнёт смотреть на вас с подозрением.

Задание 25 делится на три типа задач — от простеньких до таких, что даже ваш калькулятор попросит отпуск.

Первый тип — работа с масками чисел. Если вам кажется, что маска — это только про карнавальные костюмы и Хэллоуин, то ошибаетесь! Тут маска — это шаблон для поиска чисел по определённым признакам.

Например, найти все числа, которые начинаются с «1» и заканчиваются на «9», или те, что похожи на загадочного единорога в мире цифр.

Для решения таких задач нам на помощь приходит модуль Python под названием fnmatch. Его название звучит как заклинание из Гарри Поттера: «Фнматчус!» Но вместо магии он использует подстановочные знаки — такие хитрые символы-звёздочки и вопросики, которые позволяют искать строки по шаблону быстрее любого детектива. Забавно, что fnmatch был создан для сопоставления имён файлов (filename matching), но работает он со всеми строками подряд. Так что если вы хотите найти все файлы с именем вроде «кот_в_шляпе*», этот модуль будет вашим лучшим другом.

Кстати о звёздочках!

В fnmatch она означает «любой набор символов». Это почти как в жизни: если у вас есть свободный вечер и куча дел, звёздочка поможет охватить всё сразу. Например, шаблон «a*b» найдёт строки от коротенькой «ab» до загадочной «ax*xasd%123&asdcxvdf#b». Это как если бы ваша бабушка сказала: «Носи шарф любой длины!» — и вы пришли в шарфе размером с палатку.

Второй тип заданий уже посложнее и связан с делителями чисел.

Тут придётся искать всех друзей числа — его делителей — и проверять их качества: оканчивается ли делитель на определённую цифру или сколько среди них особенных экземпляров. Помните анекдот про программиста? Он решил проверить все делители числа 1000 и сказал: «Это же проще пареной репы!» После трёх часов работы он понял: репа-то была не пареная… А тут ещё надо фильтровать делителей по разным признакам!

А третий тип?

Ох уж эти сложные задачи! Помимо поиска делителей нужно определить, какие из них простые числа. Простые числа — те самые загадочные ребята из мира математики, которых любят все любители интеллектуальных игр… ну или почти все.

Проверка простоты числа требует умения быстро вычислять без лишних затрат времени. Вспоминается случай из жизни одного студента: он решил проверить простоту всех чисел от 1 до миллиона вручную (ну да-да), потом пожалел о своём выборе и стал молиться на Python.

Но вернёмся к fnmatch!

Этот модуль действительно классный помощник для решения задач первого типа задания 25 ЕГЭ по информатике. Он позволяет легко работать с подстановочными знаками без необходимости погружаться в запутанные регулярные выражения (хотя их изучение всё равно пригодится для более сложных заданий).

Подстановочные знаки работают так же просто и интуитивно понятно, как команды в Unix-системах (Ubuntu там всякие). Кстати говоря, многие программисты знакомы с этим синтаксисом ещё со времён первых попыток приручить командную строку.

This entry was posted in Разное. Bookmark the permalink.