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

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

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

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

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

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

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