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

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

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

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

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

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

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