Настя составляет 4-буквенные коды из букв Н, А, С, Т, Я. Каждую букву можно использовать не более одного раза, при этом нельзя ставить рядом две гласные и две согласные. Сколько различных кодов может составить Настя?
Заметим, что поскольку и гласных и согласных больше одной, слово может начинаться с как с согласной, так и с гласной. Также учтём то, что каждую букву нужно использовать только один раз.
Поставим на первое место любую из трёх согласных. На второе — любую из двух гласных. На третье — любую из двух оставшихся согласных. На четвертое — оставшуюся гласную. По правилу произведения, соответствующие количества способов перемножаем. Учитывая, что на первое место можно поставить как согласную, так и гласную, Настя может составить
Ответ: 24.
Приведём другое решение на языке Python.
import itertools
alphabet = "НАСТЯ"
vol = "АЯ"
con = "НСТ"
ar = itertools.permutations(alphabet, 4) #Размещение
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) or (e[i] in con and e[i+1] in con):
flag = False
if flag:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Н, А, С, Т, Я'.Remove(', ').Permutations(4)
.where(s->'АЯ'.Permutations(2).all(d->d not in s))
.where(s->'НСТ'.Permutations(2).all(d->d not in s))
.Count.Print;
end.

