8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Студент составляет для отчёта названия источников. Названия должны иметь длину от 5 до 10 символов и состоять только из первых пятнадцати символов русского алфавита в верхнем регистре. Каждое название должно начинаться и заканчиваться гласной буквой, а в между ними содержать неповторяющиеся согласные буквы. Сколько названий студент вписал в отчёт, если он из всех составленных выбрал только те, в которых получилось сочетание символов БВГ.
Решение руками
В первых 15-ти букв русского алфавита 4 гласных(АЕЁИ) и 11 согласных(БВГДЖЕЙКЛМН) букв. Посчитаем сколько слов можно составить в 5-ти буквенном варианте:
Поскольку БВГ в слове обязательно должно быть, то 3 символа согласных в 5-символьном слове полностью заняла комбинация букв БВГ. Для 6-ти символьного слова кол-во слов будет выглядеть следующим образом:
Умножаем на 2 так как у нас есть две вариации 6-ти символьных слов, где есть БВГ: *БВГ** и **БВГ*. По мере увеличения символов в слове также будет увеличиваться кол-во вариантов слов, где есть БВГ, Для 7-ми символьного слова 3 варианта, для 8-ми символьного слова 4 варианта и так далее.
Опишем оставшиеся случаи и посчитаем сколько слов можем составить:
7-ми символьное слово:
8-ми символьное слово:
9-ти символьное слово:
10-ти символьное слово:
Осталось сложить полученные числа:
Идея решения через itertools:
Мы формируем все возможные названия источников длиной от 5 до 10 символов, используя только первые 15 букв русского алфавита в верхнем регистре. Названия должны начинаться и заканчиваться гласной буквой, а между ними содержать неповторяющиеся согласные. Для этого выделяем множества гласных gl и согласных sogl. Далее используем функцию permutations для генерации всех перестановок согласных длины от 3 до 8, чтобы учесть все возможные длины названий. После генерации каждой перестановки проверяем, содержит ли она последовательность БВГ. Если проверка проходит, перебираем все варианты первой и последней буквы (гласные) и увеличиваем счётчик cnt на 1 для каждого допустимого названия.
Решение через itertools:
from itertools import permutations # Импортируем функцию permutations для генерации перестановок # Множество гласных букв gl = "АЕЁИ" # Множество согласных букв sogl = "БВГДЖЗЙКЛМН" # Счётчик для подсчёта допустимых названий cnt = 0 # Перебираем длины названий от 5 до 10 символов # Так как первая и последняя буквы гласные, внутренние согласные имеют длину от 3 до 8 for i in range(3, 8 + 1): # Генерация всех перестановок согласных длины i for x2 in permutations(sogl, i): x2 = "".join(x2) # Преобразуем кортеж символов в строку # Проверяем, содержит ли перестановка согласных последовательность "БВГ" if "БВГ" in x2: # Перебираем все варианты первой гласной буквы for x1 in gl: # Перебираем все варианты последней гласной буквы for x3 in gl: # Для каждого допустимого сочетания увеличиваем счётчик cnt += 1 # Выводим количество допустимых названий print(cnt)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!