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

Арина составляет 6-буквенные коды из букв Ш,У,Т,К,А. Буква У может использоваться в коде ровно один раз, при этом она не может стоять на первом месте, и рядом с буквой А. Все остальные буквы могут встречаться любое количество раз. Сколько различных кодов может составить Арина?

Решение руками

Найдем слова с одной буквой У; есть четыре варианта расстановки, так как эта буква не может стоять на первом и последнем месте:

* У * * * * — так как У не может стоять на первом месте

* * У * * *

* * * У * *

* * * * У *

* * * * * У

Так как рядом с У не может стоять буква А, то слева и справа от У можно поставить только одну из трех букв, исключая А, а на другие оставшиеся места — одну из четырех.

3 У 3 4 4 4 → 3⋅1 ⋅3⋅4⋅4 ⋅4 = 576

4 3 У 3 4 4 → 4⋅3 ⋅1⋅3⋅4 ⋅4 = 576

4 4 3 У 3 4 → 4⋅4 ⋅3⋅1⋅3 ⋅4 = 576

4 4 4 3 У 3 → 4⋅4 ⋅4⋅3⋅1 ⋅3 = 576

4 4 4 4 3 У → 4⋅4 ⋅4⋅4⋅3 ⋅1 = 768

Итого: 576 ⋅4+ 768 = 3072  .

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

a = ’ШУТКА’

count = set()

for x1 in ’ШТКА’:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    for x6 in a:
                        s = x1+x2+x3+x4+x5+x6
                        if s.count(’У’) == 1 and ’УА’ not in s and ’АУ’ not in s:
                            count.add(s)
print(len(count))

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

from itertools import product

count = set()

for x in product(’ШУТКА’,repeat = 6):
    s = ’’.join(x)
    if s[0] != ’У’ and s.count(’У’) == 1 and ’УА’ not in s and ’АУ’ not in s:
        count.add(s)
print(len(count))

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