

Ольга составляет 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.


Демьян составляет 6-буквенные коды из букв Д, Е, М, Ь, Я, Н. Каждую букву нужно использовать ровно 1 раз, при этом Ь нельзя ставить первым и нельзя ставить после гласной. Сколько различных кодов может составить Демьян?
Пусть буква Г обозначает гласную, а буква С — согласную. Тогда в слове на любой позиции могут быть использованы гласные Г, согласные С и конструкция СЬ, обозначающая какую-либо согласную с мягким знаком. Тогда, например, при использовании в качестве согласной буквы в конструкции СЬ, буквы Д можно будет получить 5 · 4 · 3 · 2 · 1 = 120 вариантов слов. Для остальных двух согласных букв также получаем по 120 вариантов. Таким образом, всего можно составить 3 · 120 = 360 различных кодов.
Ответ: 360.
Приведём другое решение на языке Python.
import itertools
alphabet = "ДЕМЬЯН"
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)):
if (e[0] == "Ь") or (e[i] == "Ь" and e[i-1] in vol):
flag = False
if flag: count += 1
print(count)
Приведём решение Сергея Калугина на языке Python.
from itertools import permutations
cnt=0
a = permutations('ДЕМЬЯН',6)
for i in a:
p=''.join(i)
if p[0]!='Ь' and (('ЕЬ' not in p) and ('ЯЬ' not in p)):
cnt+=1
print(cnt)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Д, Е, М, Ь, Я, Н'.Remove(', ').Permutations(6)
.Count(s->(s[1]<>'Ь')and('ЕЬ'not in s)and('ЯЬ'not in s))
.Print;
end.
Наверх