Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №2

Каждый день Матвей составляет задачки из букв П, Л, А, Н, И, М, Е, Т, Р, И, Я. Сколько различных 7-значных слов он может составить, если каждую согласную букву он должен использовать нечётное количество раз?

Решение руками

В нашем слове 6 согласных букв (ПЛНМТР) и 4 уникальных гласных букв (АИЕЯ). Нам нужно составить 7-буквенное слово, значит, для того чтобы условие выполнилось, нам нужно использовать каждую согласную букву ровно по одному разу. Количество перестановок согласных букв среди 6 мест равна: 6! = 720  . На оставшееся место в любом слове мы можем расположить одну и 4 гласных букв. Количество слов, которое можно составить если гласная будет находиться на последнем месте: 6∗5 ∗4 ∗3∗ 2∗1 ∗4 = 2880  . Данное значение нужно умножить на количество вариантов слова, которые нам подходят. Всего таких вариантов слов 7. Умножаем количество слов в одно варианте на количество вариантов подходящих слов: 2880 ∗7 = 20160  .

Решение через циклы

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))

Ответ: 20160
Оцените статью
Я решу все!