Митя составляет 7-буквенные коды. В кодах разрешается использовать только буквы К,А,М,Ы,Ш, при этом код не может начинаться с гласной буквы, а также не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Митя?
На первом месте может стоять только одна из трех букв — К,М или Ш
На втором месте может стоять одна из четырех букв без буквы К,М или Ш, так как код не содержит двух одинаковых букв подряд
На третьем месте может стоять одна из четырех букв, то есть без буквы, стоящей на втором месте
Тогда количество последовательностей считается таким образом:
Решение через циклы
a = ’КАМЫШ’ # наше слово
a1 = ’КМШ’ # разрешенные буквы для первого места
c = 0 # итоговый счётчик
#перебор различных составлений 7-буквенных слов
for x1 in a1:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
for x6 in a:
for x7 in a:
s = x1+x2+x3+x4+x5+x6+x7 # формируем слово
# проверка по условию
if ’АА’ not in s and ’КК’ not in s and ’ЫЫ’
not in s and ’ММ’ not in s and ’ШШ’ not in s:
c += 1
print(c) #вывод ответа
Решение через itertools
from itertools import product # импортируем product из модуля itertools.
count = 0 # итоговый счётчик
# проход по всевозможным составлениям 7-буквенных слова КАМЫШ
for x in product(’КАМЫШ’,repeat = 7):
s = ’’.join(x) # формируем слово
# проверка по условию
if s[0] not in ’АЫ’ and ’АА’ not in s and ’КК’ not in s and ’ЫЫ’
not in s and ’ММ’ not in s and ’ШШ’ not in s:
count += 1
print(count) # вывод ответа