Демид составляет пятибуквенные слова из букв КРОВАТЬ, содержащие букву Р, но не более четырех раз. Остальные буквы не могут повторяться. Сколько различных слов может составить Демид?
Решение руками
Допустим, что в слове 1 буква Р. Ее можно поставить на 5 позиций пятью способами. Способов расстановки остальных букв по четырем позициям: . Итого получаем
слов.
Допустим, что в слове 2 буквы Р. Их можно поставить на 5 позиций способами. Способов расстановки остальных букв по трем позициям:
. Итого получаем
слов.
Допустим, что в слове 3 буквы Р. Их можно поставить на 5 позиций способами. Способов расстановки остальных букв по двум позициям:
. Итого получаем
слов.
Допустим, что в слове 4 буквы Р. Их можно поставить на 5 позиций способами. Способов расстановки остальных букв на оставшуюся позицию:
. Итого получаем
слов.
Общее число слов:
Решение через циклы
a = ’КРОВАТЬ’
count = set()
for x1 in a:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5
# проверка, что Р встречается в слове, но не более 4 раз
if 1 <= s.count(’Р’) <= 4:
# проверка, что все остальные буквы, кроме Р, не повторяются в слове
if all(s.count(i) == 1 for i in s if i != ’Р’):
count.add(s)
print(len(count))
Решение через itertools
from itertools import product
count = set()
for x in product(’КРОВАТЬ’,repeat = 5):
s = ’’.join(x)
# проверка, что Р встречается в слове, но не более 4 раз
if 1 <= s.count(’Р’) <= 4:
# проверка, что все остальные буквы, кроме Р, не повторяются в слове
if all(s.count(i) == 1 for i in s if i != ’Р’):
count.add(s)
print(len(count))