Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №3

Ростислав составляет 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
Оцените статью
Я решу все!