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

Из букв слова Х,О,Г,В,А,Р,Т,С составляются 8-буквенные последовательности. Сколько можно составить различных последовательностей таких, что каждая буква в них используется ровно один раз и буква А не стоит рядом с буквой Т?

Всего 8-буквенных слов можно составить 8!  , так как уникальных букв для составления у нас 8.

Из них нужно вычесть количество сочетаний, в которых присутствуют буквы А и Т рядом. Комбинаций из этих букв всего 2: АТ и ТА, всего существует 7 варианта разместить две буквы рядом в слове из 8 букв, поэтому итоговая формула будет выглядеть так: 7⋅2 ⋅(1 ⋅1⋅6⋅5 ⋅4⋅3⋅2 ⋅1)

8!− (7⋅2⋅(1⋅1 ⋅6⋅5⋅4 ⋅3⋅2⋅1)) = 30240

Решение программой (циклы):

ans = set()

alf = ’ХОГВАРТС’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        for x7 in alf:
                            for x8 in alf:
                                w = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8
                                if len(w) == len(set(w)):
                                    if ’АТ’ not in w and ’ТА’ not in w:
                                        ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import permutations

ans = set()
alf = ’ХОГВАРТС’

for w in permutations(alf, 8):
    w = ’’.join(w)
    if ’АТ’ not in w and ’ТА’ not in w:
        ans.add(w)
print(len(ans))

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