Михаил составляет 6-буквенные коды. В кодах разрешается использовать только буквы А, Б, В, Г, при этом код не может начинаться с гласной и не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Михаил?
На первое место слова можно поставить любую из
Ответ: 729.
Приведём другое решение на языке Python.
import itertools
alphabet = "АБВГ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
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.
from itertools import product
count = 0
for x in product('АБВГ', repeat=6):
w = ''.join(x)
if w[0] != 'А' and w.count('АА') == 0 and w.count('ББ') == 0 and w.count('ВВ') == 0 and w.count('ГГ') == 0:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'А, Б, В, Г'.Remove(', ').Cartesian(6)
.Where(s->s[1] <> 'А') // Первой не может быть А
.Where(\(a,b,c,d,e,f)->((a<>b)and(b<>c)and(c<>d)and(d<>e)and(e<>f))
).Count.Print;
end.

