Катя составляет 5-буквенные коды. В кодах разрешается использовать только буквы С,И,М,В,О,Л, при этом код не может начинаться с гласной буквы, а также не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Катя?
Решение программой (циклы):
ans = set()
alf = ’СИМВОЛ’
for x1 in alf:
for x2 in alf:
for x3 in alf:
for x4 in alf:
for x5 in alf:
w = x1 + x2 + x3 + x4 + x5
if w[0] not in ’ИО’:
f = 1 # Переменная-флаг
for i in range(len(w) - 1):
# Если хоть раз условие не выполнилось - флаг станет 0
if w[i] == w[i + 1]:
f = 0
break
# Только если флаг остался единицей - считаем слово
if f:
ans.add(w)
print(len(ans))
Решение программой (itertools):
from itertools import product
ans = set()
alf = ’СИМВОЛ’
for w in product(alf, repeat=5):
w = ’’.join(w)
if w[0] not in ’ИО’:
f = 1
for i in range(len(w) - 1):
if w[i] == w[i + 1]:
f = 0
break
if f:
ans.add(w)
print(len(ans))
Ответ: 2500