Ах, ЕГЭ по информатике — тот самый экзамен, который заставляет даже самых стойких ребят задуматься: «А не пойти ли мне лучше в цирк к клоунам?» Но нет, мы с вами герои, и сегодня разберёмся с загадочными заданиями восьмого типа. Представьте себе: вам дают набор цифр, а вы должны из них сотворить такие комбинации, что сама математика скажет: «Вот это да!» И всё это на фоне того, что ваша мама уже третий час напоминает про чай с печеньками.
Итак, начнём с классики жанра — трёхзначных чисел в пятеричной системе счисления.
Звучит как название нового модного коктейля: «Пятеричный дайкири». Но нет, здесь всё серьёзно. Нам нужно найти количество таких чисел, где цифры идут слева направо в невозрастающем порядке.
Если проще — каждая следующая цифра не больше предыдущей. Представьте себе очередь в магазине: первый человек купил три шоколадки, второй — две, третий — одну или вообще ничего. Вот примерно так.
Но тут важный момент: первая цифра не может быть нулём!
Это как если бы вы пришли на вечеринку в костюме призрака и сказали: «Я — никто!» Не прокатит! Трёхзначное число без первой цифры — это просто не число.
Для решения мы используем магию Python и функцию product() из модуля itertools. Это такая штука, которая перебирает все возможные варианты размещений с повторениями.
Если честно, она похожа на вашу бабушку на базаре: перебирает каждый помидорчик и выбирает лучший.
Заведём счётчик count и будем увеличивать его каждый раз, когда встречаем число по вкусу нашего задания. Проверяем первую цифру (не должна быть нулём) и порядок цифр (невозрастающий). Например, 321 подходит — буква «зачёт», а вот 123 уже нет — тут порядок нарушен!
После всех этих манипуляций наш компьютер выдаст ответ — 34.
Да-да, всего лишь 34 таких числа! Как говорится: «Мало ли кто крутой?
Главное — чтобы подходил под правила.»
Теперь переключимся на более сложную задачку из той же серии: семеричные пятизначные числа с ровно одной шестёркой и без повторяющихся подряд цифр. Звучит страшно? Не переживайте!
Тут главное понять условие про соседние одинаковые цифры.
Представьте себе вечеринку танцоров: если два человека танцуют одинаковый шаг подряд — скучно! Так же и с цифрами: нельзя два раза подряд видеть одну и ту же.
Как проверить это? Легко!
Пройдитесь по числу словно строгий учитель физкультуры и следите за тем, чтобы никто не списывал у соседа шпаргалку (то есть не повторялся).
А насчёт ровно одной шестёрки — представьте себе игру в прятки. Цифра 6 спряталась ровно один раз среди других гостей-восьмёрок и пятёрок.
В программировании для этого используем метод count(), который считает количество определённых символов в строке.
Выглядит он так просто, что даже ваш кот смог бы им воспользоваться (если бы умел программировать).
И вот после всех проверок наш скрипт снова радостно сообщает вам количество подходящих чисел.
Кстати говоря, эти задания напоминают мне старую шутку про программиста:
— Почему программисты путают Хэллоуин и Рождество?
— Потому что OCT 31 == DEC 25!
Если вы не поняли шутку – не беда! Главное помнить: OCT – восьмеричная система счисления (октябрь), а DEC – десятичная (декабрь).
Восьмеричное число 31 равно десятичному 25 – вот такой каламбур для любителей систем счисления.
ЕГЭ по информатике — это настоящий вызов, где даже трёхзначные пятеричные числа превращаются в головоломку с элементами творчества и логики.