Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №11

Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 5-буквенные слова, в которых есть только буквы A, B, C, D, E, G, Y, причём буквы G и Y встречаются только на двух первых позициях и никакие другие буквы не могут встречаться на этих позициях, а буквы A, B, C, D — только на двух последних и никакие другие буквы не могут встречаться на этих позициях. Сколько различных кодовых слов может использовать Олег?

Решение руками

На первой и второй позиции могут стоять всего 2 буквы, на четвертой и пятой могут встречаться 4 буквы. Так как буквы которые встречаются на 1, 2, 4 и 5 позициях не могут встретится на третьей позиции, то там можно использовать только одну букву E. Тогда всего различных кодовых слов может использовать Олег: 2 ⋅2⋅1⋅4 ⋅4 = 64  .

Решение через циклы

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)

Ответ: 64
Оцените статью
Я решу все!