8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Оксана составляет 5-буквенные слова из букв М, Н, О, Г, Т, Ч, К, И. Каждая из букв может встречаться в слове не более одного раза. Сколько различных слов может составить Оксана?
На первое место Оксана ставит одну из букв, на второе — одну из
оставшихся, т.к. одна буква уже
использована. По той же логике, на третье — одну из
оставшихся, на четвёртое — одну из
оставшихся и на пятое одну из
оставшихся букв. Всего Оксана может составить
различных слов.
Решение кодом через циклы:
Для решения задачи с помощью циклов создаём пустое множество ans, куда будем добавлять все допустимые слова. Строка alf = ’МНОГТЧКИ’ содержит все доступные буквы. Используем 5 вложенных циклов, по одному на каждую позицию слова (x1, x2, x3, x4, x5). На каждой итерации формируем текущее слово: w = x1+x2+x3+x4+x5. Проверяем условие:
Все буквы уникальны → len(w) == len(set(w)). Функция set() создаёт множество уникальных элементов, поэтому если длина множества совпадает с длиной слова, значит буквы не повторяются.
Если слово удовлетворяет условию, добавляем его в множество ans. После завершения перебора выводим количество элементов множества, что соответствует числу допустимых слов.
# Создаем множество для хранения уникальных слов ans = set() # Набор доступных букв alf = ’МНОГТЧКИ’ # Перебор всех 5-буквенных комбинаций for x1 in alf: for x2 in alf: for x3 in alf: for x4 in alf: for x5 in alf: # Формируем слово из текущей комбинации букв w = x1 + x2 + x3 + x4 + x5 # Проверяем условие: все буквы уникальны if len(w) == len(set(w)): ans.add(w) # Выводим количество уникальных слов print(len(ans))
Решение кодом через itertools:
Для решения задачи используем модуль itertools и функцию permutations, которая генерирует все возможные перестановки указанной длины без повторений. Создаём пустое множество ans. Для каждой перестановки добавляем её в множество. После перебора выводим длину множества, что соответствует числу допустимых слов.
from itertools import permutations # Создаем множество для хранения уникальных слов ans = set() # Набор доступных букв alf = ’МНОГТЧКИ’ # Перебираем все перестановки длины 5 без повторений for x in permutations(alf, 5): ans.add(x) # Выводим количество уникальных слов print(len(ans))
Специальные программы

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

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

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

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

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

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