Добрый день. Не приходит в голову как написать. Задание из егэ №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 шт):
А тебе точно надо написать код? Везде в интернете пишут что тебе надо посчитать количество по формуле, не?
Если все же нужен код... Просто для собственной пользы, попробуй понять что делает этот код:
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)
первые 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)