8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Юля составляет 5-буквенные коды из букв Ф,Е,С,Т,И,В,А,Л,Ь. Буква И может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Юля?
Решение руками:
Случай 1: Код не содержит букву И
Каждая из 5 позиций может быть заполнена любой из 8 букв. кодов.
Случай 2: Код содержит ровно одну букву И
Буква И может стоять только на 2-й, 3-й или 4-й позиции (так как она не может быть на 1-й или 5-й).
И на 2-й позиции (_ И _ _ _):
1-я позиция: Не может быть Е (чтобы не было ЕИ). Доступно 7 букв (все, кроме И и Е).
3-я позиция: Не может быть Е (чтобы не было ИЕ). Доступно 7 букв.
4-я и 5-я позиции: Любые 8 букв (включая Е, но без И).
Количество кодов: кодов. Аналогичным образом считаемся И на 3-й позиции (_ _ И _ _), И
на 4-й позиции (_ _ _ И _).
Итого для случая с одной буквой И: 3136(2-я позиция) + 3136(3-я позиция) + 3136(4-я позиция) = 9408 кодов.
Общее количество кодов: 32768(без И) + 9408(с одной И) = 42176 кодов.
Решение программой (циклы):
Составляем программу для перебора всех 5-буквенных кодов из букв ФЕСТИВАЛЬ, где буква И может встречаться не
более одного раза, при этом она не может стоять на первой или последней позиции и не может быть рядом с буквой Е.
Для каждого кода проверяем эти условия с помощью count и проверки подстрок ЕИ и ИЕ. Если код подходит,
добавляем его в множество, чтобы исключить дубликаты, в конце выводим длину множества, что и будет количеством
допустимых кодов.
ans = set() # множество для хранения всех допустимых 5-буквенных кодов alf = "ФЕСТИВАЛЬ" # доступные буквы # Перебираем все возможные комбинации из 5 букв через вложенные циклы for x1 in alf: for x2 in alf: for x3 in alf: for x4 in alf: for x5 in alf: w = x1 + x2 + x3 + x4 + x5 # формируем код # Проверяем условия: # 1. Буква И встречается не более одного раза # 2. Буква И не на первой и не на последней позиции # 3. Буква И не рядом с буквой Е if w.count("И") <= 1 and w[0] != "И" and w[-1] != "И" and "ЕИ" not in w and "ИЕ" not in w: ans.add(w) # добавляем код во множество, чтобы исключить дубликаты print(len(ans)) # выводим количество допустимых кодов
Решение программой (itertools):
Для решения задачи с помощью модуля воспользуемся функцией
, которая генерирует все
возможные комбинации букв ФЕСТИВАЛЬ длины 5. Каждую комбинацию преобразуем в строку, проверяем те же
условия аналогично решению с циклами. Если код удовлетворяет условиям, добавляем его в множество. В конце
выводим длину множества, что и будет количеством допустимых кодов.
from itertools import product ans = set() # множество для хранения всех допустимых 5-буквенных кодов alf = "ФЕСТИВАЛЬ" # доступные буквы # Используем product для перебора всех возможных 5-буквенных комбинаций for w in product(alf, repeat=5): w = "".join(w) # преобразуем кортеж в строку # Проверяем условия: # 1. Буква И встречается не более одного раза # 2. Буква И не на первой и не на последней позиции # 3. Буква И не рядом с буквой Е if w.count("И") <= 1 and w[0] != "И" and w[-1] != "И" and "ЕИ" not in w and "ИЕ" not in w: ans.add(w) # добавляем код во множество, чтобы исключить дубликаты print(len(ans)) # выводим количество допустимых кодов
Специальные программы

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

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

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

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

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

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