Тема 8. Комбинаторика

8.02 Подсчет количества слов/чисел

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела комбинаторика
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#85462

Студент составляет для отчёта названия источников. Названия должны иметь длину от 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:

Мы формируем все возможные названия источников длиной от 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)

Ответ: 803984

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!