Катя составляет шестибуквенные слова перестановкой букв слова КАПКАН. При этом она избегает слов с двумя подряд одинаковыми буквами. Сколько различных кодов может составить Катя?
Решение руками
Общее кол-во слов с учётом перестановок повторяющихся букв К и А:
Пусть КК = X, АА = Y(будто бы это одна буква), тогда количество слов с комбинациями КК и АА:
Количество слов с КК и без АА(набор букв Н, П, А, А, X): — 24(где встречается АА) = 36
Количество слов с АА и без КК — тоже 36.
Ответ: .
Решение через циклы
s = ’КАПКАН’
# Создаём множество, чтобы не учитывались повторы слов
cnt = set()
for i in s:
for j in s:
for k in s:
for l in s:
for m in s:
for n in s:
st = i + j + k + l + m + n
# Проверяем количество букв
if st.count(’К’) == 2 and st.count(’А’) == 2 and st.count(’П’) == 1 and st.count(’Н’) == 1:
# Так как по две у нас только буквы КК и АА, то проверяем только комбинации с ними
if (’КК’ not in st) and (’АА’ not in st):
cnt.add(st)
print(len(cnt))
Решение через itertools
from itertools import permutations
count = set()
for x in permutations(’КАПКАН’):
s = ’’.join(x)
if ’АА’ not in s and ’КК’ not in s:
count.add(s)
print(len(count))