Ольга составляет 5-буквенные коды из букв О, Л, Ь, Г, А. Каждую букву нужно использовать ровно
Пусть
Ответ: 48.
Приведём другое решение.
Сначала найдём общее количество возможных слов, учитывая только то ограничение, что
Приведём другое решение на языке Python.
import itertools
alphabet = "ОЛЬГА"
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)):
if (e[0] == "Ь") or (e[i] == "Ь" and e[i-1] in vol):
flag = False
if flag:
count += 1
print(count)
Приведём другое решение на языке Python.
a1=['о','л','г','а']
a=['о','л','г','а','ь']
k=0
for b1 in a1:
for b2 in a:
for b3 in a:
for b4 in a:
for b5 in a:
s=b1+b2+b3+b4+b5
if s.count('о')==1 and s.count('л')==1 and s.count('ь')==1 and s.count('г')==1 and s.count('а')==1 :
if not('оь') in s and not('аь') in s:
k+=1
print(k)
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
count = 0
for s in permutations('ОЛЬГА', 5):
slovo = ''.join(s)
if slovo[0] != 'Ь':
if 'АЬ' not in slovo and 'ОЬ' not in slovo:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'О, Л, Ь, Г, А'.Remove(', ').Permutations(5)
.Count(s->(s[1]<>'Ь')and('ОЬ'not in s)and('АЬ'not in s))
.Print;
end.

