Задание №8: Комбинаторика и подсчёт вариантов слов
Основные типы и прототипы задания №8:
Слова с фиксированным алфавитом
Слова в алфавитном порядке
Ограничения на гласные/согласные
Условие задания
(А. Богданов) Марина собирает восьмибуквенные слова из букв своего имени. Первые четыре буквы новых слов берутся из первых четырех букв имени, так чтобы ни одна буква не повторялась. А последние четыре буквы из последних трех букв имени, и они могут многократно повторяться. На каком месте окажется имя МАРИАННА в отсортированном по алфавиту списке сгенерированных слов? Нумерация начинается с 1.
Ответ:
1078
Общий шаблон задания №8 на 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)
Шаблон общий для всего номера: формулу, числа и строки подставьте из условия. Как это делать, показано в разборе задания №8.