Арина составляет 6-буквенные коды из букв Ш,У,Т,К,А. Буква У может использоваться в коде ровно один раз, при этом она не может стоять на первом месте, и рядом с буквой А. Все остальные буквы могут встречаться любое количество раз. Сколько различных кодов может составить Арина?
Решение руками
Найдем слова с одной буквой У; есть четыре варианта расстановки, так как эта буква не может стоять на первом и последнем месте:
* У * * * * — так как У не может стоять на первом месте
* * У * * *
* * * У * *
* * * * У *
* * * * * У
Так как рядом с У не может стоять буква А, то слева и справа от У можно поставить только одну из трех букв, исключая А, а на другие оставшиеся места — одну из четырех.
3 У 3 4 4 4
4 3 У 3 4 4
4 4 3 У 3 4
4 4 4 3 У 3
4 4 4 4 3 У
Итого: .
Решение через циклы
a = ’ШУТКА’
count = set()
for x1 in ’ШТКА’:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
for x6 in a:
s = x1+x2+x3+x4+x5+x6
if s.count(’У’) == 1 and ’УА’ not in s and ’АУ’ not in s:
count.add(s)
print(len(count))
Решение через itertools
from itertools import product
count = set()
for x in product(’ШУТКА’,repeat = 6):
s = ’’.join(x)
if s[0] != ’У’ and s.count(’У’) == 1 and ’УА’ not in s and ’АУ’ not in s:
count.add(s)
print(len(count))