Сколько различных шестибуквенных кодовых слов можно составить из букв П,Р,О,Г,А, если в каждом из них буква Р встречается не менее 3 раз?
Для начала воспользуемся формулой сочетаний: .
При помощи неё найдём количество вариантов расставить 3 буквы Р на 6 мест:
Аналогичным образом найдём, что расставить 4 буквы Р на 6 мест можно 15-ю способами, 5 букв Р – 6-ю способами и 6 букв Р – 1 способом.
На оставшиеся места всегда можно расставить 4 буквы – все кроме Р. Так при 3-х буквах Р останется 3 места, при 4-х – 2 места, при 5-и – 1 место и 0 мест при 6-и буквах Р.
Перемножим всё для каждого кол-ва букв Р и получим ответ:
Решение программой (циклы):
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(’Р’) >= 3:
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(’Р’) >= 3:
ans.add(w)
print(len(ans))