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

Арсений составляет 7-буквенные слова перестановкой букв слова ОКТЯБРЬ. При этом в слове не могут стоять рядом буквы О и Я, а буква Ь не может стоять на первом или последнем месте. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Арсений?

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

a = ’ОКТЯБРЬ’
a1 = ’ОКТЯБР’
count = set()
for x1 in a1:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    for x6 in a:
                        for x7 in a1:
                            s = x1+x2+x3+x4+x5+x6+x7
                            # проверка, что О и Я не стоят рядом и все буквы различны
                            if ’ОЯ’ not in s and ’ЯО’ not in s and len(set(s)) == len(s):
                                count.add(s)
print(len(count))

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

from itertools import permutations
count = 0
for x in permutations(’ОКТЯБРЬ’):
    s = ’’.join(x)
    if s[0] != ’Ь’ and s[-1] != ’Ь’ and (’ОЯ’ not in s) and (’ЯО’ not in s):
        count += 1
print(count)

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