8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Игорь составляет 5-буквенные слова, в которых есть только буквы Д, О, С, К, А, причём буква А используется в каждом слове хотя бы 2 раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Игорь?
Решение руками
Всего 5-буквенных слов из заданного набора букв: - 5 букв на выбор для каждого из 5
мест.
Слов, в которых А встречается 0 раз: - 4 буквы на выбор для каждого из 5 мест.
Cлов, в которых А встречается 1 раз: - 5 вариантов для размещения буквы А, 4 буквы на выбор для
каждого из оставшихся 4 мест.
Тогда подходящих слов: .
Решение через циклы:
Для решения задачи через циклы будем поэтапно формировать все 5-буквенные слова из букв Д, О, С, К, А и проверять, что буква А встречается в слове хотя бы дважды. Алгоритм реализуется так:
Сначала создаём строку a = ’ДОСКА’, которая содержит все возможные буквы. Создаём переменную-счётчик c = 0 для подсчёта допустимых слов.
Далее используем 5 вложенных циклов for, по одному на каждую букву слова:
1. for x1 in a — выбираем букву на первой позиции.
2. for x2 in a — выбираем букву на второй позиции.
3. for x3 in a — выбираем букву на третьей позиции.
4. for x4 in a — выбираем букву на четвёртой позиции.
5. for x5 in a — выбираем букву на пятой позиции.
Внутри циклов формируем слово s = x1+x2+x3+x4+x5. Затем проверяем, что буква А встречается хотя бы два раза: if s.count(’А’) >= 2. Если условие выполняется, увеличиваем счётчик c += 1.
После перебора всех комбинаций выводим значение c — это количество допустимых слов.
# Создаём строку с буквами, доступными для составления слова a = ’ДОСКА’ # Создаём счётчик допустимых слов c = 0 # Перебираем первую букву слова 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 # Проверяем условие: буква А встречается хотя бы дважды if s.count(’А’) >= 2: # Увеличиваем счётчик, если условие выполнено c += 1 # Выводим количество допустимых слов print(c)
Решение через itertools:
Для упрощения перебора всех комбинаций используем модуль itertools и функцию product, которая создаёт декартово произведение букв, формируя все возможные 5-буквенные слова.
1. Генерируем все комбинации букв ’Д’, ’О’, ’С’, ’К’, ’А’ длиной 5: for x in product(’ДОСКА’, repeat = 5).
2. Преобразуем кортеж x в строку s = ’’.join(x).
3. Проверяем, что буква А встречается хотя бы дважды: if s.count(’А’) >= 2.
4. Если условие выполняется, увеличиваем счётчик c.
После перебора всех комбинаций выводим c — количество слов, удовлетворяющих условию.
from itertools import product # Счётчик допустимых слов c = 0 # Перебор всех 5-буквенных комбинаций букв ’Д’, ’О’, ’С’, ’К’, ’А’ for x in product(’ДОСКА’, repeat = 5): # Преобразуем кортеж в строку слова s = ’’.join(x) # Проверяем, что буква А встречается хотя бы дважды if s.count(’А’) >= 2: # Увеличиваем счётчик, если условие выполнено c += 1 # Выводим количество допустимых слов print(c)
Специальные программы

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

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

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

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

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

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