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

Андрей составляет 7-буквенные коды из букв А, Н, Д, Р, Е, Й. Буквы А и Й должны встречаться в коде ровно по одному разу, при этом буква Й не может стоять на первом месте. Остальные допустимые буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить?

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

s = ’АНДРЕЙ’
s1 = ’АНДРЕ’
cnt = 0
for i in s1:
    for j in s:
        for k in s:
            for l in s:
                for m in s:
                    for n in s:
                        for o in s:
                            st = i + j + k + l + m + n + o
                            if st.count(’А’) == 1 and st.count(’Й’) == 1:
                                cnt += 1
print(cnt)

Решение через itertools

from itertools import product

count = set()

for x in product(’АНДРЕЙ’,repeat = 7):
    s = ’’.join(x)
    if s[0] != ’Й’ and s.count(’Й’) == 1 and s.count(’А’) == 1:
        count.add(s)
print(len(count))

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