
Герасим составляет 7-буквенные коды из букв Г, Е, Р, А, С, И, М. Каждую букву нужно использовать ровно
Решение. Заметим, что, поскольку гласных букв три, а согласных — четыре, слово должно начинаться с согласной, поскольку иначе нельзя будет составить слово, в котором не будут встречаться подряд две согласные буквы. Также учтём то, что каждую букву нужно использовать только один раз.
На первое место можно поставить любую из четырех согласных. На второе — любую из трех гласных. На третье — любую из трех оставшихся согласных. На четвертое — любую из двух оставшихся гласных. На пятое — любую из двух оставшихся согласных. На шестое — одну оставшуюся гласную. На седьмое место можно поставить последнюю оставшуюся согласную. По правилу произведения, соответствующие количества способов перемножаем. Таким образом, Герасим может составить
Ответ: 144.
Приведём решение на языке Python.
import itertools
alphabet = "ГЕРАСИМ"
con = 'ГРСМ'
vol = 'ЕАИ'
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if (e[i] in con and e[i + 1] in con) or (e[i] in vol and e[i + 1] in vol):
flag = False
if flag == True: count += 1
print(count)
Приведём решение Ивана Свербихина на языке Python.
b = 'ЕАИ'
a = 'ГРСМ'
c = 0
for i in a:
for j in b:
for n in a:
for m in b:
for l in a:
for k in b:
for g in a:
s =i+j+n+m+l+k+g
f = set(s)
if len(f) == len(s):
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Г, Е, Р, А, С, И, М'.Remove(', ').Permutations(7)
.where(s->'ЕАИ'.Permutations(2).all(d->d not in s))//нельзя две гласные подряд
.where(s->'ГРСМ'.Permutations(2).all(d->d not in s))//нельзя две согласные подряд
.Count.Print;
end.
PDF-версии: