Сколько можно составить различных кодов, в составе которых встречаются три подряд идущие гласные, путём перестановки букв слова ОБОРОНА? Словом считается любая допустимая последовательность букв, не обязательно осмысленная.
Решение программой (циклы):
s = ’ОБОРОНА’
counter = set()
for z in s:
for x in s:
for c in s:
for v in s:
for b in s:
for m in s:
for a in s:
slovo = z+x+c+v+b+m+a
# т.к. у нас перестановки,
# то мы должны каждую букву алфавита использовать столько раз,
# сколько она встречается в слово ОБОРОНА
if (slovo.count(’Б’) == 1 and slovo.count(’Н’) == 1
and slovo.count(’Р’) == 1 and slovo.count(’А’) == 1):
# все возможные комбинации гласных путём перестановок
if ((’ООО’ in slovo) or (’АОО’ in slovo)
or (’ОАО’ in slovo) or (’ООА’ in slovo)):
counter.add(slovo)
print(len(counter))
Решение программой (itertools):
from itertools import permutations
ans = set()
alf = ’ОБОРОНА’
for w in permutations(alf, 7):
w = ’’.join(w)
w1 = w.replace(’А’, ’О’)
if ’ООО’ in w1:
ans.add(w)
print(len(ans))
Ответ: 384