Светлана составляет коды из букв слова ПАРАБОЛА. Код должен состоять из
Заметим, что алфавит состоит из
Поставим на первую позицию гласную букву, таких слов можно составить 4 · 4 · 3 · 3 · 2 · 2 · 1 · 1 = 576. Поскольку
Теперь поставим на первую позицию согласную букву, таких слов можно составить 4 · 4 · 3 · 3 · 2 · 2 · 1 · 1 = 576. Поскольку
Таким образом, ответ — 96 + 96 = 192.
Ответ: 192.
Приведём другое решение на языке Python.
import itertools
alphabet = "ПАРАБОЛА"
vol = "ОА"
con = "ПРБЛ"
ar = itertools.permutations(alphabet, 8) #Размещение
arl = []
for e in ar:
arl.append(list(e))
a = set()
for e in arl:
flag = True
s = ""
for i in range(len(e)-1):
s += e[i]
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:
a.add(s)
print(len(a))
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
s1 = 'ПРБЛ'
s2 = 'АО'
count = set()
for var in permutations('ПАРАБОЛА', 8):
slovo = ''.join(var)
if all((slovo[i] in s1 and slovo[i+1] in s2) or (slovo[i+1] in s1 and slovo[i] in s2) for i in range(len(slovo)-1)):
count.add(slovo)
print(len(count))
Приведём решение Бориса Савельева на языке Python.
from itertools import product
sog = 'ПРБЛ'
gl = 'ОА'
s = product(sog,gl,sog,gl,sog,gl,sog,gl)
count = 0
for i in s:
p=''.join(i)
if p.count('П') == p.count('Р') == p.count('Б') == p.count('Л') == p.count('О') == 1 and p.count('А')== 3:
count += 1
print(count*2)
Приведём решение Ивана Новикова на языке Python.
from itertools import *
cnt = 0
gs = 'АО'
sgl = 'ПРБЛ'
gs_ix = [0, 2, 4, 6]
sgl_ix = [1, 3, 5, 7]
for i in permutations('ПАРАБОЛА',8):
a = ''.join(i)
if all(a[i] in gs for i in gs_ix) or all(a[i] in sgl for i in sgl_ix):
cnt += 1
print(cnt/3)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
var word := 'ПАРАБОЛА';
var count := word.Permutations(word.Length).Distinct
.Where(s -> not s.IsMatch('[АО]{2}')) // Нет двух гласных подряд
.Where(s -> not s.IsMatch('[ПРБЛ]{2}')) // Нет двух согласных подряд
.Count.Print;
end.

