

Герасим составляет 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.


Полина составляет 6-буквенные коды из букв П, О, Л, И, Н, А. Каждую букву нужно использовать ровно
Заметим, что поскольку гласных и согласных поровну, слово может начинаться с как с согласной, так и с гласной. Также учтём то, что каждую букву нужно использовать только один раз.
Поставим на первое место любую из трёх согласных. На второе — любую из трех гласных. На третье — любую из двух оставшихся согласных. На четвертое — любую из двух оставшихся гласных. На пятое — одну оставшуюся согласную. На шестое — одну оставшуюся гласную. По правилу произведения, соответствующие количества способов перемножаем. Учитывая, что на первое место можно поставить как согласную, так и гласную, Полина может составить
Ответ: 72.
Приведём другое решение на языке Python.
import itertools
alphabet = "ПОЛИНА"
con = "ПЛН"
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 con and e[i+1] in con) or (e[i+1] in vol and e[i] in vol):
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
count = 0
for p in permutations('ПОЛИНА'):
slovo = ''.join(p)
slovo = slovo.replace('Л', 'П').replace('Н', 'П')
slovo = slovo.replace('О', 'А').replace('И', 'А')
if 'ПП' not in slovo and 'АА' not in slovo:
count += 1
print(count)
Приведём решение Бориса Савельева на языке Python.
from itertools import product
al1='ПЛН'
al2='ОИА'
s=product(al1,al2,al1,al2,al1,al2)
k=0
for i in s:
p=''.join(i)
if p.count('П')==1 and p.count('О')==1 and p.count('Л')==1 and p.count('И')==1 and p.count('Н')==1 and p.count('А')==1:
k+=1
print(k*2)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'П, О, Л, И, Н, А'.Remove(', ').Permutations(6)
.where(s->'ОИА'.Permutations(2).all(d->d not in s))//нельзя две гласные подряд
.where(s->'ПЛН'.Permutations(2).all(d->d not in s))//нельзя две согласные подряд
.Count.Print;
end.
Наверх