Михаил составляет 5-буквенные коды. В кодах разрешается использовать только буквы А, Б, В, Г, Д, при этом код не может начинаться с гласной и не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Михаил?
На первое место слова можно поставить любую из
Ответ: 1024.
Приведём другое решение на языке Python.
import itertools
alphabet = "АБВГД"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if e[0] == 'А' or e[i] == e[i + 1]:
flag = False
if flag == True: count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
k=['А','Б','В','Г','Д']
n = 0
for a in k:
for b in k:
for c in k:
for d in k:
for e in k:
s = a + b + c + d + e
if (s[0] != k[0]) and not('АА' in s) and not('ББ' in s) and not('ВВ' in s) and not('ГГ' in s) and not('ДД' in s):
n += 1
print (n)
Приведём решение Павла Резанова на языке Python.
count = 0
for a in 'бвгд':
for b in 'абвгд':
for c in 'абвгд':
for d in 'абвгд':
for e in 'абвгд':
if a != b and b != c and c != d and d != e:
count += 1
print(count)
Приведём решение Юрия Красильникова на языке Python.
from itertools import product
print(len([p for p in product('АБВГД',repeat = 5) if p[0] != 'А' and all(p[i] != p[i+1] for i in range(4))]))
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
cnt = 0
for s in product('АБВГД', repeat=5):
slovo = ''.join(s)
if slovo[0] not in 'А':
if all(p not in slovo for p in 'АА ББ ВВ ГГ ДД'.split()):
cnt += 1
print(cnt)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'А, Б, В, Г, Д'.Remove(', ').Cartesian(5)
.Count(s->(s[1]<>'А')and(s[1]<>s[2])and(s[2]<>s[3])and(s[3]<>s[4])and(s[4]<>s[5]))
.Print;
end.

