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

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

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

s = ’ПРОСЬБА’

k = 0
for a in s:
    for b in s:
        for c in s:
            for d in s:
                for e in s:
                    for f in s:
                        for g in s:
                            w = a+b+c+d+e+f+g
                            if a != ’Ь’ and all(w.count(i) == 1 for i in w) and ’РОСА’ not in w:
                                k += 1
print(k)

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

from itertools import permutations

count = set()

for x in permutations(’ПРОСЬБА’):
    s = ’’.join(x)
    if s[0] != ’Ь’ and ’РОСА’ not in s:
        count.add(s)
print(len(count))

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