8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Школьник составляет 9-буквенные слова, в которых есть только буквы П, О, Б, Е, Д, А. При этом известно, что буква П встречается не более 6 раз. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые школьник может написать?
Всего вариантов без учета ограничений будет . Из данного общего количества надо вычесть случаи,
когда буква П встречается 7,8 и 9 раз. Рассмотрим данные случаи отдельно
Когда буква П встречается 7 раз – случаев.
Когда буква П встречается 8 раз – случаев.
И когда П встречается 9 раз всего 1 случай.
Вычитаем наши случаи из общего количества – .
Решение программой (циклы):
Составляем программу для перебора всех 9-буквенных слов из заданных букв, используя вложенные циклы. Переходим
к условию – так как буква П может встречаться не более 6 раз, для каждого слова проверяем, сколько раз она
встречается, используя метод . Если условие выполнено, добавляем слово в множество, чтобы
исключить дубликаты. После отработки всех циклов длина множества показывает количество допустимых
слов.
ans = set() # множество для хранения неповторяющихся подходящих слов alf = "ПОБЕДА" # допустимые буквы # задаём каждую из 9 букв через циклы for x1 in alf: for x2 in alf: for x3 in alf: for x4 in alf: for x5 in alf: for x6 in alf: for x7 in alf: for x8 in alf: for x9 in alf: # составляем слово w = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 # проверяем, что буква П встречается не более 6 раз if w.count("П") <= 6: ans.add(w) # добавляем подходящее слово print(len(ans)) # выводим ответ
Решение программой (itertools):
Для решения с помощью модуля воспользуемся функцией
, которая генерирует все возможные слова
длины 9 с повторениями из заданного алфавита. Для каждого слова проверяем количество букв П аналогично решению
с циклами и добавляем в множество, чтобы убрать дубликаты.
from itertools import product ans = set() # множество для хранения неповторяющихся подходящих слов alf = "ПОБЕДА" # допустимые буквы # перебираем все слова длины 9 for w in product(alf, repeat=9): w = "".join(w) # преобразуем кортеж в слово # проверяем, что буква П встречается не более 6 раз if w.count("П") <= 6: ans.add(w) # добавляем подходящее слово print(len(ans)) # выводим ответ
Специальные программы

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

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

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

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

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

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