Алексей составляет 5-буквенные слова из букв М, А, Г, И, С, Т, Р. Каждую букву нужно использовать ровно 1 раз, при этом в слове нельзя использовать более одной гласной. Сколько различных кодов может составить Алексей?
Пожалуйста распишите решение
Ответы
Программа:
Python:
from itertools import permutations
word, count = list(permutations('МАГИСТР', r = 5)), 0
for i in word:
if (i.count('А') == 0 and i.count('И') <= 1) or (i.count('А') <= 1 and i.count('И') == 0):
count += 1
print(i)
print(count)
Объяснение:
Импортируем метод permutations из библиотеки itertools. Переменной word присваиваем список перестановок длиной 5 из слова "МАГИСТР". Это массив значений вида:
[('М', 'А', 'Г', 'И', 'С'), ('М', 'А', 'Г', 'И', 'Т'), ('М', 'А', 'Г', 'И', 'Р'), ('М', 'А', 'Г', 'С', 'И'), ('М', 'А', 'Г', 'С', 'Т'), ... ]
Согласно условию, делаем проверку на наличие лишь одной гласной буквы. Если действительно так, увеличиваем значение count на 1 и выводим текущую перестановку. В конце выводим само количество кодов, необходимое по условию.