Добрый день. Не приходит в голову как написать. Задание из егэ №8

1.Алексей составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Алексей использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X может появиться на последнем месте или не появиться вовсе. Сколько различных кодовых слов может использовать Алексей?

Не могу понять как написать код, чтобы X могла не появиться в переборе слов.

2.Мой код.

   `from itertools import product
   k = 0
   for x in product('ABCX', repeat = 5):
       s = ''.join(x)
       if len(set(s)) and s[0]=='X':
           print(s, k)
       k+=1`

Ответы (4 шт):

Автор решения: Gh0sTG0

А тебе точно надо написать код? Везде в интернете пишут что тебе надо посчитать количество по формуле, не?

Если все же нужен код... Просто для собственной пользы, попробуй понять что делает этот код:

from itertools import product
k = 0
for x in product('ABCX', repeat=5):
    if "X" not in x[:-1]: # [:-1] это такая штука которая отрезает последний символ
        k += 1
        print(x, k)
print(k)

Ответ 324?

→ Ссылка
Автор решения: Эникейщик

Написать код, чтобы Х не появлялась в слове, можно вот так

for x in product('ABC', repeat = 5)
→ Ссылка
Автор решения: eri

первые 4 буквы

>>> len(list(itertools.product('ABC', repeat = 4)))
81

на последнюю букву 4 варианта

>>> len(list(itertools.product('ABCX', repeat = 1)))
4

Умножаем 81*4 и

>>> 81*4
324

Варианты вывести можно

>>> for s1 in itertools.product('ABC', repeat = 4):
...     for s2 in itertools.product('ABCX', repeat = 1):
...         ''.join(s1+s2)
... 
'AAAAA'
'AAAAB'
'AAAAC'
'AAAAX'
....
'CCCCC'
'CCCCX'

Но задача больше логическая

перемножить количество вариантов для каждой буквы

>>> 3*3*3*3*4
→ Ссылка
Автор решения: Елизавета

Можно так:

import itertools

s='АВСХ'
k=0
for i in itertools.product(s, repeat=5):
    a=''.join(i)
    if a[4]=='Х' and a[1]!='Х' and a[0]!='Х' and a[2]!='Х' and a[3]!='Х' or 'Х' not in a:
        k+=1 
print(k)
→ Ссылка