Ростислав составляет 5-буквенные слова перестановкой букв слова МУЖИК. При этом в слове не могут стоять рядом две гласные буквы. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Ростислав?
Решение через циклы
a = ’МУЖИК’
count = set()
for x1 in a:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5
# проверка, что все буквы различные и при этом гласные буквы не стоят рядом
if len(set(s)) == len(s) and ’УИ’ not in s and ’ИУ’ not in s:
count.add(s)
print(len(count))
Решение через itertools
from itertools import permutations
count = 0
for x in permutations(’МУЖИК’):
s = ’’.join(x)
if (’УИ’ not in s) and (’ИУ’ not in s):
count += 1
print(count)
Ответ: 72