Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 5-буквенные слова, в которых есть только буквы A, B, C, D, E, G, Y, причём буквы G и Y встречаются только на двух первых позициях и никакие другие буквы не могут встречаться на этих позициях, а буквы A, B, C, D — только на двух последних и никакие другие буквы не могут встречаться на этих позициях. Сколько различных кодовых слов может использовать Олег?
Решение руками
На первой и второй позиции могут стоять всего 2 буквы, на четвертой и пятой могут встречаться 4 буквы. Так как буквы которые встречаются на 1, 2, 4 и 5 позициях не могут встретится на третьей позиции, то там можно использовать только одну букву E. Тогда всего различных кодовых слов может использовать Олег: .
Решение через циклы
a = ’GY’
a1 = ’E’
a2 = ’ABCD’
c = 0
for x1 in a:
for x2 in a:
for x3 in a1:
for x4 in a2:
for x5 in a2:
s = x1+x2+x3+x4+x5
c += 1
print(c)
Решение через itertools
from itertools import product
count = 0
for x in product(’ABCDEGY’,repeat = 5):
s = ’’.join(x)
if s[0] in ’GY’ and s[1] in ’GY’ and s[2] == ’E’ and s[-2] in ’ABCD’ and s[-1] in ’ABCD’:
count += 1
print(count)