8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Дамир составляет 5-буквенные коды из букв О, Л, Ь, Г, А. Слова должны соответствовать следующим условиям: Каждую букву нужно использовать ровно 1 раз; Ь нельзя ставить первым и нельзя ставить после гласной. Сколько различных кодов может составить Дамир?
Решение руками
Всего вариантов составления слов из 5 букв, в которых каждая из букв встречается по 1 разу:
перестановок.
Вариантов составления таких слов, но начинающихся с Ь: перестановок.
Рассмотрим варианты составления таких слов, но с Ь после гласной буквы. Разместить пару гласная + Ь можно
на одном из 4 мест, при этом вариантов гласных в паре - 2, а вариантов для оставшихся букв . Итого:
.
Тогда нужных по условию слов будет: .
Решение через циклы
Составляем программу для перебора всех 5-буквенных комбинаций. Проверяем три условия: первая буква не «Ь»
(используем индексацию), все буквы уникальны (используем set, количество уникальных букв должно быть 5) и
«Ь» не стоит после гласной (используем конструкцию not in, чтобы избежать комбинаций АЬ и ОЬ). Если
все условия выполнены, добавляем слово в множество, чтобы избежать повторов. В конце выводим длину
множества.
a = "ОЛЬГА" # допустимые буквы count = set() # множество для подходящих слов for x1 in a: for x2 in a: for x3 in a: for x4 in a: for x5 in a: s = x1 + x2 + x3 + x4 + x5 # формируем слово # проверяем три условия: # 1) первая буква не Ь # 2) каждую букву можно использовать 1 раз # 3) Ь не стоит после гласной (А или О) if s[0] != "Ь" and len(set(s)) == 5 and "ОЬ" not in s and "АЬ" not in s: count.add(s) print(len(count)) # выводим количество подходящих слов
Решение через itertools
Используем permutations для перебора всех перестановок букв, что гарантирует использование каждой буквы
ровно 1 раз. Для каждой строки проверяем, что первая буква не «Ь» и что «Ь» не стоит после гласной,
аналогично решению с циклами. Если условия соблюдены, добавляем слово в список. В конце считаем количество
слов.
from itertools import permutations ans = [] # список подходящих слов gl = "ОА" # гласные буквы for p in permutations("ОЛЬГА", 5): s = "".join(p) # формируем строку # проверка условия: первая буква не Ь и Ь не после гласной if s[0] != "Ь" and "ОЬ" not in s and "АЬ" not in s: ans.append(s) print(len(ans)) # количество подходящих слов
Специальные программы

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

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

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

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

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

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