Задача с сайта https://kpolyakov.spb.ru/
Вася составляет 7-буквенные коды из букв К, У, П, Ч, И, Х, А. Каждую букву нужно использовать ровно 1 раз, при этом код не может начинаться с буквы Ч и не может содержать сочетания ИАУ. Сколько различных кодов может составить Вася?
1 способ решения
from itertools import * # Импорт модуля itertools для работы с комбинаторикой
c = 0 # Счётчик для подсчёта подходящих комбинаций
# Генерация всех возможных комбинаций длины 7 из букв ’КУПЧИХА’
t = product(’КУПЧИХА’, repeat=7)
for i in t: # Перебор всех комбинаций
s = ’’.join(i) # Преобразование кортежа в строку
# Проверка условий: 1. Первый символ не ’Ч’; 2. ’ИАУ’ отсутствует
# 3. Все символы в строке уникальны
if (s[0] != ’Ч’) and (not ’ИАУ’ in s) and (len(set(s)) == 7):
c += 1 # Увеличение счётчика, если все условия выполнены
print(c) # Вывод результата
2 способ решения
from itertools import * # Импорт модуля itertools для работы с комбинаторикой
c = 0 # Счётчик для подсчёта подходящих комбинаций
t = permutations(’КУПЧИХА’) # Генерация всех возможных перестановок
for i in t: # Перебор всех перестановок
s = ’’.join(i) # Преобразование кортежа в строку
# Проверка условий: 1. Первый символ не ’Ч’; # 2. ’ИАУ’ отсутствует
if (s[0] != ’Ч’) and (not ’ИАУ’ in s):
c += 1 # Увеличение счётчика, если оба условия выполнены
print(c) # Вывод результата
Ответ: 4224