Задание №8 — Комбинаторика
Все четырёхбуквенные слова, в составе которых могут быть только буквы Л, Е, М, У, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
1. ЕЕЕЕ
2. ЕЕЕЛ
3. ЕЕЕМ
4. ЕЕЕР
5. ЕЕЕУ
6. ЕЕЛЕ
…
Под каким номером в списке идёт первое слово, которое начинается с буквы Л?
Правильный ответ
126
Пояснение
Решение:
Сначала выпишем используемые буквы в алфавитном порядке: Е, Л, М, Р, У. Список слов упорядочен по алфавиту, значит сперва идут все слова, начинающиеся на Е, затем все слова на Л, потом на М и т. д.
Слов, начинающихся с буквы Е, ровно : три оставшиеся позиции заполняются независимо друг от друга любой из пяти букв. Эти слова занимают номера с 1 по 125.
Следовательно, первое слово, начинающееся с буквы Л (это слово ЛЕЕЕ), стоит под номером .
from itertools import product
words = sorted(''.join(w) for w in product('ЛЕМУР', repeat=4))
for i, w in enumerate(words, 1):
if w[0] == 'Л':
print(i, w) # 126 ЛЕЕЕ
break
Ответ: 126