8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Отец составляет 4-буквенные слова, в которых есть только буквы М, О, К, А, Р, причём буква О используется в них не более 3-х раз (или не используется совсем). Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Отец?
Решение руками
Решим от обратного. Посчитаем всевозможные варианты и вычтем те варианты, которые нас не устраивают (в которых буква "О"встречается 4 раза).
Всего вариантов:
Нас не устраивает один единственный вариант, когда на всех 4-х позициях стоит буква "О". Значит, искомое кол-во
слов
Решение через циклы:
Для решения задачи через циклы мы будем поэтапно формировать все четырёхбуквенные слова из букв М, О, К, А, Р и проверять их на условие: буква О встречается не более 3 раз. Алгоритм реализуется следующим образом:
Сначала создаём строку s = ’МОКАР’, содержащую все допустимые буквы. Создаём переменную-счётчик k = 0, которая будет увеличиваться на 1 для каждого слова, удовлетворяющего условию.
Далее используем 4 вложенных цикла for, по одному на каждую позицию в слове:
1. for a in s — перебираем буквы для первой позиции.
2. for b in s — перебираем буквы для второй позиции.
3. for c in s — перебираем буквы для третьей позиции.
4. for d in s — перебираем буквы для четвёртой позиции.
Внутри циклов формируем слово w = a+b+c+d. Затем проверяем, что буква О встречается не более 3 раз: if w.count(’О’) <= 3. Если условие выполняется, увеличиваем счётчик k на 1.
После завершения перебора всех комбинаций выводим значение k — это и будет количество допустимых слов.
# Создаём строку с допустимыми буквами s = ’МОКАР’ # Счётчик допустимых слов k = 0 # Перебираем буквы для первой позиции for a in s: # Перебираем буквы для второй позиции for b in s: # Перебираем буквы для третьей позиции for c in s: # Перебираем буквы для четвёртой позиции for d in s: # Формируем слово из выбранных букв w = a+b+c+d # Проверяем условие: буква ’О’ встречается не более 3 раз if w.count(’О’) <= 3: # Если условие выполнено, увеличиваем счётчик k += 1 # Выводим количество допустимых слов print(k)
Решение через itertools:
Для упрощения перебора всех комбинаций букв используем модуль itertools и функцию product, которая генерирует декартово произведение букв с повторением 4 раза (для 4 позиций слова).
1. Импортируем функцию product из модуля itertools.
2. Создаём пустое множество count = set() для хранения уникальных слов, удовлетворяющих условию.
3. Перебираем все возможные комбинации букв: for x in product(’МОКАР’, repeat=4).
4. Преобразуем кортеж x в строку с помощью ’’.join(x).
5. Проверяем, что буква О встречается не более 3 раз: if s.count(’О’) <= 3. Если условие выполнено, добавляем слово в множество count.
6. В конце выводим длину множества len(count) — это количество допустимых слов.
from itertools import product # Импортируем функцию product для генерации комбинаций # Множество для хранения уникальных допустимых слов count = set() # Перебираем все возможные 4-буквенные комбинации букв for x in product(’МОКАР’, repeat=4): # Преобразуем кортеж в строку s = ’’.join(x) # Проверяем условие: буква ’О’ встречается не более 3 раз if s.count(’О’) <= 3: # Если условие выполнено, добавляем слово в множество count.add(s) # Выводим количество допустимых слов print(len(count))
Специальные программы

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

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

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

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

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

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