Азат составляет 5-буквенные слова из букв Д, Е, М, О, Н, причём если слово начинается на гласную, то оно обязательно должно оканчиваться на согласную. Все буквы используются ровно один раз. Сколько слов может составить Азат?
Решение руками
Посчитаем сколько всего слов можно составить перестановкой букв из слова ДЕМОН. Количество перестановок равно: . Теперь посчитаем количество слов, неподходящих по условию, то есть слово начинается и заканчивается гласной:
. Теперь из общего количества вычтем количество неподходящих слов:
.
Решение программой (циклы):
ans = set()
alf = ’ДЕМОН’
for x1 in alf:
for x2 in alf:
for x3 in alf:
for x4 in alf:
for x5 in alf:
w = x1 + x2 + x3 + x4 + x5
if len(w) == len(set(w)):
if (x1 in ’ЕО’ and x5 in ’ДМН’) or x1 in ’ДМН’:
ans.add(w)
print(len(ans))
Решение программой (itertools):
from itertools import permutations
ans = set()
alf = ’ДЕМОН’
for x in permutations(alf, 5):
if (x[0] in ’ЕО’ and x[-1] in ’ДМН’) or x[0] in ’ДМН’:
ans.add(x)
print(len(ans))