Каждый день Матвей составляет задачки из букв П, Л, А, Н, И, М, Е, Т, Р, И, Я. Сколько различных 7-значных слов он может составить, если каждую согласную букву он должен использовать нечётное количество раз?
Решение руками
В нашем слове 6 согласных букв (ПЛНМТР) и 4 уникальных гласных букв (АИЕЯ). Нам нужно составить 7-буквенное слово, значит, для того чтобы условие выполнилось, нам нужно использовать каждую согласную букву ровно по одному разу. Количество перестановок согласных букв среди 6 мест равна: . На оставшееся место в любом слове мы можем расположить одну и 4 гласных букв. Количество слов, которое можно составить если гласная будет находиться на последнем месте:
. Данное значение нужно умножить на количество вариантов слова, которые нам подходят. Всего таких вариантов слов 7. Умножаем количество слов в одно варианте на количество вариантов подходящих слов:
.
Решение через циклы
counter = 0
a = set()
for a1 in (’ПЛАНИМЕТРИЯ’):
for a2 in (’ПЛАНИМЕТРИЯ’):
for a3 in (’ПЛАНИМЕТРИЯ’):
for a4 in (’ПЛАНИМЕТРИЯ’):
for a5 in (’ПЛАНИМЕТРИЯ’):
for a6 in (’ПЛАНИМЕТРИЯ’):
for a7 in (’ПЛАНИМЕТРИЯ’):
slovo = a1+a2+a3+a4+a5+a6+a7
if all(slovo.count(x) % 2 == 1 for x in ’ПЛНМТР’): # если каждая согласная буква в слове используется нечётное кол-во раз
a.add(slovo)
print(len(a))
Решение через itertools
from itertools import product
count = set()
for x in product(’ПЛАНИМЕТРИЯ’,repeat = 7):
s = ’’.join(x)
if all(s.count(i) % 2 != 0 for i in ’ПЛНМТР’): # если каждая согласная буква в слове используется нечётное кол-во раз
count.add(s)
print(len(count))