Найти в Дзене

ITERTOOLS комбинаторика на Python решаем 8-е задание без труда

Оглавление

Большинство заданий №8 из КЕГЭ по информатике связано с комбинаторикой - перестановками, сочетаниями, количеством вариантов выборки и т.д. Модуль ITERTOOLS предназначен для таких задач (ссылка на документацию - https://docs.python.org/3/library/itertools.html ). Разберём его основные функции

PRODUCT - сочетания с повторениями

print(product(*'AB', repeat=3))

(‘A’, ‘A’, ‘A’) (‘A’, ‘A’, ‘B’) (‘A’, ‘B’, ‘A’) (‘A’, ‘B’, ‘B’) (‘B’, ‘A’, ‘A’) (‘B’, ‘A’, ‘B’) (‘B’, ‘B’, ‘A’) (‘B’, ‘B’, ‘B’)

Функция принимает на вход строку символов и длину комбинаций. В примере мы получили все возможные комбинации длиной 3 из двух букв АВ.

Пример задачи

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы П, И, Р, причём буква П появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

Решение

В данном примере мы получаем все возможные комбинации из трёх букв (п, и, р) длиной 5, сохраняя их в списке а. Затем пробегаемся по списку и подсчитываем среди его элементов те, в которых только одна буква 'п'.

PERMUTATIONS - перестановки

print(*permutations(‘ABC’))

(‘A’, ‘B’, ‘C’) (‘A’, ‘C’, ‘B’) (‘B’, ‘A’, ‘C’) (‘B’, ‘C’, ‘A’) (‘C’, ‘A’, ‘B’) (‘C’, ‘B’, ‘A’)

Мы получили все комбинации путём перестановки букв A, B и C.

Пример задачи

Петя составляет семибуквенные слова перестановкой букв слова ТРАТАТА. Сколько всего различных слов может составить Петя?

-2

Обратите внимание на четвёртую строку: из-за того, что в слове "ТРАТАТА" повторяются буквы Т и А, получилось очень много дублей. Для того, чтобы их удалить, применили функцию SET. Она превратила список в множество, тем самым убрав повторы значений.

И в заключение хотелось бы отметить: я рекомендую использовать библиотеку ITERTOOLS, но только для проверки, а не в качестве основного решения. Будет хорошо, если вы решите задачу вначале на бумаге, после напишете программу, и ваши ответы совпадут.

Удачи!

Что-то пошло не так, и нам не удалось загрузить комментарии. Попробуйте ещё раз
Рекомендуем почитать
🐍📋 F-строки в Python для интерполяции и форматирования строк
Из этой статьи вы узнаете, как использовать f-строки — инструмент для быстрой интерполяции и форматирования строк, который превосходит по эффективности и читабельности классические подходы с применением оператора % и метода .format(). Данная статья является переводом. Ссылка на оригинал. К концу этого руководства вы поймете, почему f-строки – это мощный инструмент, которым необходимо овладеть разработчику на Python. В этом самоучителе вы узнаете, как: Для извлечения максимальной пользы от этого руководства, вы должны быть знакомы с типом данных строк Python...
Пересдача ЕГЭ по математике, профильный уровень, 04.07.2025. Разбор и анализ второй части
Начинаем смотреть вторую часть профиля. По каждому заданию скажу мнение, и в конце подведу общий итог, как было с первой частью. №13. Уравнение Здесь у нас не хитрые тригонометрические уравнения. Из сложного - формула приведения, применение основного тригонометрического тождества (?). Ставлю вопрос - потому что это базовые навыки для любого профиля. Сложностей тут нет. Ну что тут можно сказать? Уровень заданий сопоставим со вторым резервом. На основном этапе, конечно, было сложнее за счет так напугавших всех корней...
Пересдача ЕГЭ по математике, профильный уровень, 04.07.2025. Разбор и анализ первой части
В голосованиях на данный момент лидирует разделение на две части. Давайте так и сделаем. Первая часть была стандартной, как и на всех этапах. Все ФИПИшное (или из сборника Ященко) => все знакомое и не сложное. Рассмотрим каждое задание подробнее. №1. Планиметрия Здесь дали задания на вписанные углы. На основном этапе и резервах были другие виды задач. Уровень сложности этих задач = ОГЭ по математике. Прототипы там тоже такие встречаются. Сложнее, или легче основной волны и резервов? А не могу сравнить...
Документы, вакансии и контакты