В качестве кодовых слов Витя использует 6-буквенные слова, в которых есть только буквы М,А,Т,Е,Р,И,К, причём буква Р появляется ровно 2 раза. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может составить Витя?
Всего позиций 6, две из них отводится под букву Р, а на оставшихся четырех местах может находиться любая буква из шестибуквенного набора М,А,Т,Е,И,К:
Р Р * * * * Р Р 6 6 6 6
вариантов слов, когда буква Р стоит на первой и второй позиции.
Теперь нужно найти количество перестановок двух букв Р, это считается по формуле: перестановок, где 6 — это сколькими способами мы можем выбрать место для первой буквы Р, 5 — сколькими способами мы можем выбрать место для второй буквы Р(5, так как одно место уже занято), поэтому всего вариантов
, но так как буквы одинаковые, то нужно поделить еще на 2!, чтобы исключить повторение.
Тогда общее количество слов: .
Решение программой (циклы):
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))