Комбинаторика — раздел математики, посвящённый решению задач, связанных с выбором и расположением элементов некоторого множества.
Чтобы использовать функции из библиотеки, необходимо в самом начале python файла написать from itertools import *
1. permutations()
Функция permutations генерирует все возможные перестановки из элементов последовательности. Используется в случаях, когда каждый символ используется 1 раз и порядок символов важен.
2. product
Функция product генерирует все возможные перестановки из элементов последовательности, причем элементы могут повторяться. Используется в случаях, когда каждый символ используется любое количество раз и порядок символов важен.
3. combinations
Функция combinations генерирует уникальные комбинации элементов из последовательности. Порядок элементов не имеет значения, а один и тот же элемент не используется повторно.Используется в случаях, когда каждый символ используется 1 раз и порядок символов не важен.
ПРИМЕР: Все четырехбуквенные слова, в составе которых могут быть только русские буквы А, В, Л, О, Р записаны в алфавитном порядке и пронумерованы начиная с 1. Ниже приведено начало списка.
- АААА
- АААВ
- АААЛ
- АААО
- АААР
- ААВА
Под каким номером идет первое слово, начинающееся на Л?
Посмотреть решение
from itertools import product # из модуля itertools подключаем функцию product
count=0 # создаем счетчик и обнуляем его
for i in product("авлор", repeat=4): # из букв "авлор" создаем 4-буквенные слова
count+=1 # присваиваем порядковый номер для каждого слова
if i[0]=="л": # проверяем первую букву каждого слова
print(count) # если условие сработало печатаем номер слова
break # останавливаем программу
Ответ:251
Какое количество 8-буквенных слов вы можете составить из букв слова «информатика», при условии, что каждую букву можно использовать ровно 1 раз, слово начинается на букву Р и заканчивается буквой О. Словом считается любая последовательность букв вне зависимости имеет или нет данный набор букв смысловое содержание.
Посмотреть решение
from itertools import permutations # из модуля itertools подключаем функцию permutatios
count = 0 # создаем счетчик и обнуляем его
for i in permutations("информатика", r=5): # из букв "информатика" создаем 5-буквенные слова
if i[0]=="р" and i[-1]=="о": # проверка условия
count+=1 # увеличиваем счетчик на 1 каждый раз, когда условие сработало
print(count) # выводим значение счетчика
Ответ:504