Настя составляет 6-буквенные слова, в которых есть только буквы К, О, М, А, Р, причём буквы Р, О, К встречаются ровно по одному разу. Буква М встречается не более 2 раз, а буква А может встречаться любое количество раз или не встречаться вовсе. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько различных слов может составить Настя?
Решение руками
Сначала расставим буквы К, О и Р по одному разу. Букву К можно поставить в любое место из 6, букву О – в любое место из 5, букву Р — в любое место из 4. Итого вариантов. Осталось 3 места для букв А и М. Для случая с двумя буквами М существует три варианта расстановки: ММА, МАМ, АММ. Для случая с одной буквой М – также три варианта: МАА, ААМ и АМА. И еще один вариант, когда букв М в слове нет. Итого
вариантов расстановки А и М. Получаем всего
вариантов.
Решение через циклы
a = ’КОМАР’
c = 0
for i in a:
for j in a:
for n in a:
for k in a:
for m in a:
for p in a:
s = i + j + n + k + m + p
if s.count(’Р’) == 1 and s.count(’О’) == 1 and s.count(’К’) == 1 and s.count(’М’) <= 2: # проверка по условию
c += 1
print(c)
Решение через itertools
from itertools import product
count = set()
for x in product(’КОМАР’,repeat = 6):
s = ’’.join(x)
# проверка, что буквы Р,О,К встречаются ровно 1 раз и буква М не более 2 раз
if all(s.count(i) == 1 for i in ’РОК’) and s.count(’М’) <= 2:
count.add(s)
print(len(count))