
Полина составляет 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.
PDF-версии: