Максим Сергеевич составляет 6-буквенные слова, в которых есть только буквы К, О, Т, П, Е, С. В этих словах гласные не могут стоять рядом с гласными, а согласные с согласными. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые Максим Сергеевич может написать?
Решение руками
В нашем слове 4 согласных буквы и 2 гласных буквы. Есть два варианта расстановки букв в слове, при котором будет выполняться условие с чередованием: СГСГСГ и ГСГСГС, где Г — гласная буква и С — согласная буква. В первом случае, на места с согласными буквами мы можем расположить по одной из 4 букв в каждое место. На места с гласными буквами мы можем поставить по одной из 2 букв на каждое место. Получается, что количество слов в первом варианте равно: . Во втором случае, количество вариантов будет таким же. Остается полученное количество вариантов в первом случае умножить на количество случаев. Ответ: 1024.
Решение через циклы
s1 = ’КТПС’
s2 = ’ОЕ’
k = 0
for a in s1:
for b in s2:
for c in s1:
for d in s2:
for e in s1:
for f in s2:
w = a+b+c+d+e+f
k += 1
# Чередуем порядок гласных и согласных
for a in s2:
for b in s1:
for c in s2:
for d in s1:
for e in s2:
for f in s1:
w = a+b+c+d+e+f
k += 1
print(k)
Решение через itertools
from itertools import product
count = set()
gl = ’ОЕ’
for x in product(’КОТПЕС’,repeat = 6):
s = ’’.join(x)
if all((s[i] in gl) != (s[i+1] in gl) for i in range(len(s)-1)): # проверка, что нет рядом стоящих гласных и согласных букв
count.add(s)
print(len(count))