Светлана составляет коды из букв своего имени. Код должен состоять из
Заметим, что алфавит состоит из
Пусть одна
Пусть одна
Заметим, что передвигая первую
Таким образом, Светлана может составить
Ответ: 15120.
Приведём другое решение на языке Python.
import itertools
alphabet = "СВЕТЛАНА"
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] == e[i + 1]:
flag = False
if flag:
a.add(s)
print(len(a))
Приведём другое решение на языке Python.
q = 0
sett = set()
for i1 in 'СВЕТЛАНА':
for i2 in 'СВЕТЛАНА':
for i3 in 'СВЕТЛАНА':
for i4 in 'СВЕТЛАНА':
for i5 in 'СВЕТЛАНА':
for i6 in 'СВЕТЛАНА':
for i7 in 'СВЕТЛАНА':
for i8 in 'СВЕТЛАНА':
a = i1+i2+i3+i4+i5+i6+i7+i8
if a.count('А') == 2 and a.count('С') == 1 and a.count('В') == 1 and a.count('Е') ==1 and a.count('Т')==1 and a.count('Л') == 1 and a.count('Н') == 1:
if i1 != i2 and i2 != i3 and i3 != i4 and i4 != i5 and i5 != i6 and i6 != i7 and i7 != i8 and (not(a in sett)):
sett.add(a)
q += 1
print(q)
Приведём решение Степана Козлова на языке Python.
from itertools import *
k = 0
d = set()
for i in product('СВЕТЛАНА', repeat = 8):
s = ''.join(i)
if len(set(s)) == 7 and 'АА' not in s and s.count('А') == 2:
d.add(s)
print(len(d))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'СВЕТЛАНА'.Permutations(8).Distinct
.Count(s->s.Pairwise.All(\(pr,cr)->pr<>cr))
.Print;//15120
end.
Георгий составляет коды из букв своего имени. Код должен состоять из
Заметим, что алфавит состоит из 6 букв: Г, Е, О, Р, И, Й. Каждая буква должна встречаться в коде один раз, за исключением
Пусть одна
Пусть одна
Заметим, что передвигая первую
Таким образом, Георгий может составить
Ответ: 1800.
Приведём другое решение на языке Python.
import itertools
alphabet = "ГЕОРГИЙ"
ar = itertools.permutations(alphabet, 7) #Размещение
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] == e[i + 1]:
flag = False
if flag:
a.add(s)
print(len(a))
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
count = set()
for s in permutations('георгий'):
slovo = ''.join(s)
if 'гг' not in slovo:
count.add(slovo)
print(len(count))
Приведём решение Сергея Донец на PascalABC.NET:
begin
'ГЕОРГИЙ'.Permutations(7).Distinct
.Where(s->s.Pairwise.All(\(pr,cr) -> pr<>cr))
.Count.Print;//1800
end.
Наверх

