8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Артём составляет 5-буквенные слова из букв О, П, Е, Р, А. Каждая буква может встречаться ровно один раз. При этом в слове не могут стоять рядом две согласные буквы, а буква П не может стоять на первом или последнем месте. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Артём?
Решение аналитически:
Рассмотрим все варианты того, как могут распологаться гласные и согласные:
СГСГГ – на первом месте может стоять только одна согласная, тогда всего вариантов
СГГСГ - на первом месте может стоять только одна согласная, тогда всего вариантов
СГГГС – такой вариант не возможен, так как в таком случае П обязана стоять или на первом или на последнем месте
ГСГСГ - всего вариантов
ГСГГС - на последнем месте может стоять только одна согласная, тогда всего вариантов
ГГСГС - на последнем месте может стоять только одна согласная, тогда всего вариантов
Просуммируем полученные значения . Тогда всего слов подходящих под условие
– 36.
Решение программой с помощью циклов:
Напишем программу для перебора всевозможных 5-буквенных слов из заданных букв. Для этого организуем
вложенных циклов (по одному на каждую позицию в слове). Каждый цикл перебирает буквы заданной строки,
формируя все возможные комбинации. Запишем количество подходящих слов.
a = "ОПЕРА" # Алфавит к задаче a1 = "ОЕРА" # Алфавит для первой буквы count = 0 # Счётчик подходящих слов for x1 in a1: for x2 in a: for x3 in a: for x4 in a: for x5 in a1: s = x1 + x2 + x3 + x4 + x5 # Формируем слово if len(set(s)) == 5 and ("РП" not in s) and ("ПР" not in s): # Если все буквы различны, в слове нет РП и ПР count += 1 # Увеличим счётчик print(count) # Выведем нужное количество
Решение программой с помощью модуля itertools:
Для решения задачи с помощью модуля itertools воспользуемся функцией permutations. Она, переставляя буквы, генерирует все возможные слова из заданного алфавита. Запишем количество подходящих слов.
from itertools import permutations count = 0 # Счётчик подходящих слов for x in permutations("ОПЕРА"): s = "".join(x) # join объединяет буквы if s[0] != "П" and s[-1] != "П" and ("РП" not in s) and ("ПР" not in s): # Если в слове нет РП и ПР, первая и последняя буква не П count += 1 # Увеличим счётчик print(count) # Выведем нужное количество
Специальные программы

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

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

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

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

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

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