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

Сколько можно составить различных кодов, в составе которых встречаются три подряд идущие гласные, путём перестановки букв слова ОБОРОНА? Словом считается любая допустимая последовательность букв, не обязательно осмысленная.

Решение программой (циклы):

s = ’ОБОРОНА’
counter = set()
for z in s:
    for x in s:
        for c in s:
            for v in s:
                for b in s:
                    for m in s:
                        for a in s:
                            slovo = z+x+c+v+b+m+a
                            # т.к. у нас перестановки,
                            # то мы должны каждую букву алфавита использовать столько раз,
                            # сколько она встречается в слово ОБОРОНА
                            if (slovo.count(’Б’) == 1 and slovo.count(’Н’) == 1
                                    and slovo.count(’Р’) == 1 and slovo.count(’А’) == 1):

                                # все возможные комбинации гласных путём перестановок
                                if ((’ООО’ in slovo) or (’АОО’ in slovo)
                                        or (’ОАО’ in slovo) or (’ООА’ in slovo)):
                                    counter.add(slovo)
print(len(counter))

Решение программой (itertools):

from itertools import permutations

ans = set()
alf = ’ОБОРОНА’

for w in permutations(alf, 7):
    w = ’’.join(w)
    w1 = w.replace(’А’, ’О’)
    if ’ООО’ in w1:
        ans.add(w)
print(len(ans))

Ответ: 384
Оцените статью
Я решу все!