Студент составляет для отчёта названия источников. Названия должны иметь длину от 5 до 10 символов и состоять только из первых пятнадцати символов русского алфавита в верхнем регистре. Каждое название должно начинаться и заканчиваться гласной буквой, а в между ними содержать неповторяющиеся согласные буквы. Сколько названий студент вписал в отчёт, если он из всех составленных выбрал только те, в которых получилось сочетание символов БВГ.
Решение руками
В первых 15-ти букв русского алфавита 4 гласных(АЕЁИ) и 11 согласных(БВГДЖЕЙКЛМН) букв. Посчитаем сколько слов можно составить в 5-ти буквенном варианте:
Поскольку БВГ в слове обязательно должно быть, то 3 символа согласных в 5-символьном слове полностью заняла комбинация букв БВГ. Для 6-ти символьного слова кол-во слов будет выглядеть следующим образом:
Умножаем на 2 так как у нас есть две вариации 6-ти символьных слов, где есть БВГ: *БВГ** и **БВГ*. По мере увеличения символов в слове также будет увеличиваться кол-во вариантов слов, где есть БВГ, Для 7-ми символьного слова 3 варианта, для 8-ми символьного слова 4 варианта и так далее.
Опишем оставшиеся случаи и посчитаем сколько слов можем составить:
7-ми символьное слово:
8-ми символьное слово:
9-ти символьное слово:
10-ти символьное слово:
Осталось сложить полученные числа:
Решение через 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)