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

Студент составляет для отчёта названия источников. Названия должны иметь длину от 5 до 10 символов и состоять только из первых пятнадцати символов русского алфавита в верхнем регистре. Каждое название должно начинаться и заканчиваться гласной буквой, а в между ними содержать неповторяющиеся согласные буквы. Сколько названий студент вписал в отчёт, если он из всех составленных выбрал только те, в которых получилось сочетание символов БВГ.

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

В первых 15-ти букв русского алфавита 4 гласных(АЕЁИ) и 11 согласных(БВГДЖЕЙКЛМН) букв. Посчитаем сколько слов можно составить в 5-ти буквенном варианте:

4 ∗1∗ 1∗ 1∗4 = 16

Поскольку БВГ в слове обязательно должно быть, то 3 символа согласных в 5-символьном слове полностью заняла комбинация букв БВГ. Для 6-ти символьного слова кол-во слов будет выглядеть следующим образом:

4 ∗1∗ 1∗ 1∗8 ∗4∗ 2 = 256

Умножаем на 2 так как у нас есть две вариации 6-ти символьных слов, где есть БВГ: *БВГ** и **БВГ*. По мере увеличения символов в слове также будет увеличиваться кол-во вариантов слов, где есть БВГ, Для 7-ми символьного слова 3 варианта, для 8-ми символьного слова 4 варианта и так далее.

Опишем оставшиеся случаи и посчитаем сколько слов можем составить:

7-ми символьное слово: 4 ∗1∗ 1∗ 1∗8 ∗7∗ 4∗ 3 = 2688

8-ми символьное слово: 4 ∗1∗ 1∗ 1∗8 ∗7∗ 6∗ 4∗4 = 21504

9-ти символьное слово: 4∗ 1∗1 ∗1 ∗8∗ 7∗6 ∗5 ∗4∗ 5 = 134400

10-ти символьное слово: 4∗ 1∗1 ∗1 ∗8∗ 7∗6 ∗5 ∗4∗ 4∗6 = 645120

Осталось сложить полученные числа: 16+ 256+ 2688 +21504 + 134400 + 645120 = 803984

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

from itertools import permutations

# АБВГДЕЁЖЗИЙКЛМН
gl = ’АЕЁИ’
sogl = ’БВГДЖЗЙКЛМН’

cnt = 0

for i in range(3, 8 + 1):
    for x2 in permutations(sogl, i):
        x2 = ’’.join(x2)
        if ’БВГ’ in x2:
            for x1 in gl:
                for x3 in gl:
                    cnt += 1
print(cnt)

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