Задание 8 ЕГЭ по информатике: слова в алфавитном порядке и подсчёт вариантов

Задание 8 ЕГЭ по информатике — комбинаторика: найти номер слова в списке, упорядоченном по алфавиту, или посчитать слова и числа с заданными свойствами. Номер слова находят через систему счисления с основанием, равным числу букв, а подсчёт с несколькими условиями надёжнее выполнить перебором на Python.

Как решать

Все слова длины L из K букв, выписанные в алфавитном порядке, — это числа от 0 до K^L − 1 в системе счисления с основанием K. Первой букве алфавита соответствует цифра 0, второй — 1 и так далее. Список нумеруют с единицы, поэтому номер слова на 1 больше числа, которое этим словом записано.

Шаг 1. Расположите буквы по алфавиту и сопоставьте им цифры 0, 1, 2 и далее.

Шаг 2. Чтобы найти номер слова, переведите его из системы с основанием K в десятичную и прибавьте 1. Чтобы найти слово по номеру, вычтите 1, переведите в систему с основанием K и дополните нулями слева до длины L.

Шаг 3. Если спрашивают первое или последнее слово с условием, сначала постройте его вручную: для последнего слова ставьте в каждую позицию самую позднюю допустимую букву, для первого — самую раннюю.

Задачи на количество с несколькими условиями (ровно одна буква, никакие две чётные цифры рядом) удобнее решать перебором. itertools.product перебирает слова в алфавитном порядке, если буквы отсортированы. При 5–6 позициях и 5–8 буквах вариантов меньше 300 тысяч, программа работает меньше секунды.

Примеры с решением

Пример 1

Все шестибуквенные слова, составленные из букв Л, О, Т, У, С, записаны в алфавитном порядке и пронумерованы. Вот начало списка:

1. ЛЛЛЛЛЛ
2. ЛЛЛЛЛО
3. ЛЛЛЛЛС
4. ЛЛЛЛЛТ
5. ЛЛЛЛЛУ
6. ЛЛЛЛОЛ

Под каким номером в этом списке стоит последнее слово, которое начинается с буквы С, не содержит буквы У и содержит ровно две буквы О? Слово — любая последовательность букв, не обязательно осмысленная.

Проверка ответа на Python

from itertools import product

letters = sorted("ЛОТУС")  # алфавитный порядок: Л, О, С, Т, У
answer = None
for number, word in enumerate(product(letters, repeat=6), start=1):
    w = "".join(word)
    if w[0] == "С" and "У" not in w and w.count("О") == 2:
        answer = number  # нужно последнее такое слово — запоминаем каждое
print(answer)

Ответ: 8582

По алфавиту буквы идут так: Л, О, С, Т, У. Им соответствуют цифры 0–4 пятеричной системы.

Последнее подходящее слово: первая буква С, затем самые поздние буквы без У — Т, Т, Т, а две буквы О стоят в конце: СТТТОО.

В пятеричной записи это 233311₅ = 2 · 3125 + 3 · 625 + 3 · 125 + 3 · 25 + 1 · 5 + 1 = 8581. Номер на 1 больше: 8582.

Пример 2

Сколько существует пятизначных чисел в восьмеричной системе счисления, которые не начинаются с нечётной цифры, содержат ровно одну цифру 6 и в записи которых никакие две чётные цифры не стоят рядом?

Проверка ответа на Python

from itertools import product

count = 0
for digits in product("01234567", repeat=5):
    if digits[0] not in "246":  # пятизначное и не начинается с нечётной цифры
        continue
    if digits.count("6") != 1:
        continue
    even = [int(d) % 2 == 0 for d in digits]
    if any(even[i] and even[i + 1] for i in range(4)):
        continue
    count += 1
print(count)

Ответ: 1552

Чётные восьмеричные цифры — 0, 2, 4, 6, нечётные — 1, 3, 5, 7. Первая цифра чётная и не ноль: 2, 4 или 6. Раз чётные цифры не стоят рядом, вторая цифра нечётная. Обозначим чётную позицию Ч, нечётную Н; возможны схемы ЧНННН, ЧНННЧ, ЧННЧН, ЧНЧНН и ЧНЧНЧ.

ЧНННН: единственная чётная цифра должна быть 6, остальные четыре позиции — по 4 варианта: 4^4 = 256.

Три схемы с двумя чётными цифрами: либо первая 6, а вторая чётная из 0, 2, 4 (3 варианта), либо первая 2 или 4, а вторая 6 (2 варианта). Нечётных позиций три: 5 · 4^3 = 320 на схему, 960 на три схемы.

ЧНЧНЧ: первая 6 и две другие из 0, 2, 4 — 9 вариантов; первая 2 или 4, одна из двух других 6, вторая из 0, 2, 4 — 12 вариантов. С двумя нечётными позициями: 21 · 16 = 336.

Всего 256 + 960 + 336 = 1552.

Типичные ошибки

Потренироваться на тренажёре

Частые вопросы

Как найти номер слова в списке без программы?

Сопоставьте буквам цифры по алфавиту, прочитайте слово как число в системе с основанием, равным количеству букв, переведите его в десятичную систему и прибавьте 1.

Почему itertools.product выдаёт слова в алфавитном порядке?

product меняет варианты так же, как растёт число в позиционной записи: быстрее всех меняется последняя позиция. Если строка букв отсортирована, этот порядок совпадает с алфавитным.

Сколько баллов даёт задание 8?

Задание базового уровня, за него ставят 1 первичный балл; спецификация 2027 года закладывает на него около 4 минут.

Официальные материалы

Другие задания

Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 7 и задание 9.

Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.