Света составляет 5-буквенные коды из букв С, В, Е, Т, А. Каждую букву нужно использовать ровно один раз, при этом нельзя ставить рядом две гласные. Сколько различных кодов может составить Света?
Найдём все слова, в которых учитывается условие, что каждую букву нужно использовать ровно один раз: 5 · 4 · 3 · 2 · 1 = 120.
Слов, в которых гласные стоят рядом на первом и втором месте, — 2 · 1 · 3 · 2 · 1 = 12. Также гласные могут стоять рядом на втором и третьем месте, на третьем и четвёртом, на четвёртом и пятом. Значит, всего слов, в которых гласные стоят рядом, — 12 · 4 = 48. Таким образом, ответ — 120 − 48 = 72.
Ответ: 72.
Приведём другое решение на языке Python.
import itertools
alphabet = "СВЕТА"
vol = "ЕА"
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for e in ar:
arl.append(list(e))
count = 0
for e in arl:
flag = True
for i in range(len(e)-1):
if e[i] in vol and e[i+1] in vol:
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
count = 0
for s in permutations('СВЕТА', 5):
slovo = ''.join(s)
if all(pair not in slovo for pair in 'ЕА АЕ'.split()):
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'С, В, Е, Т, А'.Remove(', ').Permutations(5)
.where(s->('ЕА' not in s)and('АЕ' not in s))
.Count.Print;
end.

