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

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

Всего позиций 6, две из них отводится под букву Р, а на оставшихся четырех местах может находиться любая буква из шестибуквенного набора М,А,Т,Е,И,К:

Р Р * * * * → Р Р 6 6 6 6 → 1⋅1 ⋅6⋅6⋅6 ⋅6 = 1296  вариантов слов, когда буква Р стоит на первой и второй позиции.

Теперь нужно найти количество перестановок двух букв Р, это считается по формуле: 62⋅5! = 15  перестановок, где 6 — это сколькими способами мы можем выбрать место для первой буквы Р, 5 — сколькими способами мы можем выбрать место для второй буквы Р(5, так как одно место уже занято), поэтому всего вариантов 6⋅5  , но так как буквы одинаковые, то нужно поделить еще на 2!, чтобы исключить повторение.

Тогда общее количество слов: 1296⋅15 = 19440  .

Решение программой (циклы):

ans = set()
alf = ’МАТЕРИК’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        w = x1 + x2 + x3 + x4 + x5 + x6
                        if w.count(’Р’) == 2:
                            ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’МАТЕРИК’

for w in product(alf, repeat=6):
    w = ’’.join(w)
    if w.count(’Р’) == 2:
        ans.add(w)
print(len(ans))

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