Задание №8: Комбинаторика и подсчёт вариантов слов
Основные типы и прототипы задания №8:
Слова с фиксированным алфавитом
Слова в алфавитном порядке
Ограничения на гласные/согласные
Условие задания
(Б. Михлин) Ученик составляет список всех возможных слов, составленных из заглавных латинских букв. Сначала он выписывает в алфавитном порядке все словa, состоящие из одной буквы (A, B, …, Z), затем – тоже в алфавитном порядке – словa из двух букв (AA, AB, …, AZ, BA, BB, … ZZ), далее идут трёхбуквенные словa (AAA, AAB, …, ZZZ) и так далее. Нумерация слов начинается с единицы: 1 – A, 2 – B, ..... 26 – Z, 27 – AA, 28 – AB, ...... Под каким порядковым номером окажется в этом списке слово PRINT?
Ответ:
7634452
Шаблон решения на Python
# === Задание 8: Комбинаторика и списки слов ===
from itertools import product
words = [''.join(p) for p in product('АПРЕЛЬ', repeat=5)]
words.sort()
count = 0
for idx, w in enumerate(words, start=1):
# Условие из задачи:
if w.count('Ь') <= 1 and not ('А' in w and 'Е' in w):
count += 1
print("Подходящих слов:", count)