Задание 8 ЕГЭ по информатике: слова в алфавитном порядке и подсчёт вариантов
Задание 8 ЕГЭ по информатике — комбинаторика: найти номер слова в списке, упорядоченном по алфавиту, или посчитать слова и числа с заданными свойствами. Номер слова находят через систему счисления с основанием, равным числу букв, а подсчёт с несколькими условиями надёжнее выполнить перебором на Python.
- Что проверяет: Знание основных понятий и методов, используемых при измерении количества информации. Базовый уровень сложности.
- Баллы: 1 первичный балл
- Формат ответа: Целое число — номер слова в списке или количество слов (чисел).
- Программа: задание решают без программы, ответ можно проверить на Python
- Уровень сложности: базовый
- Время: около 4 минут по спецификации
- Кодификатор: 2.2 — теоретические подходы к оценке количества информации, алфавитный подход, формула Хартли; Требование 1.3 — понимание основных принципов дискретизации различных видов информации
Как решать
Все слова длины 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 больше его значения в системе счисления.
- Сопоставляют цифры буквам в том порядке, в каком буквы перечислены в условии. Для нумерации нужен алфавитный порядок: Л, О, Т, У, С по алфавиту идут как Л, О, С, Т, У.
- Забывают, что старшая цифра многозначного числа не может быть нулём.
- Считают слова, где буква встречается хотя бы раз, когда спрашивают «ровно один раз».
Потренироваться на тренажёре
Частые вопросы
Как найти номер слова в списке без программы?
Сопоставьте буквам цифры по алфавиту, прочитайте слово как число в системе с основанием, равным количеству букв, переведите его в десятичную систему и прибавьте 1.
Почему itertools.product выдаёт слова в алфавитном порядке?
product меняет варианты так же, как растёт число в позиционной записи: быстрее всех меняется последняя позиция. Если строка букв отсортирована, этот порядок совпадает с алфавитным.
Сколько баллов даёт задание 8?
Задание базового уровня, за него ставят 1 первичный балл; спецификация 2027 года закладывает на него около 4 минут.
Официальные материалы
- Демоверсия, спецификация и кодификатор ЕГЭ 2027 по информатике (архив, проект)
- Демоверсии, спецификации и кодификаторы ЕГЭ по всем предметам
- Открытый банк заданий ЕГЭ
Другие задания
Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 7 и задание 9.
Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.