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

Максим Сергеевич составляет 6-буквенные слова, в которых есть только буквы К, О, Т, П, Е, С. В этих словах гласные не могут стоять рядом с гласными, а согласные с согласными. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые Максим Сергеевич может написать?

Решение руками

В нашем слове 4 согласных буквы и 2 гласных буквы. Есть два варианта расстановки букв в слове, при котором будет выполняться условие с чередованием: СГСГСГ и ГСГСГС, где Г — гласная буква и С — согласная буква. В первом случае, на места с согласными буквами мы можем расположить по одной из 4 букв в каждое место. На места с гласными буквами мы можем поставить по одной из 2 букв на каждое место. Получается, что количество слов в первом варианте равно: 4∗2 ∗4 ∗2∗ 4∗2 = 512  . Во втором случае, количество вариантов будет таким же. Остается полученное количество вариантов в первом случае умножить на количество случаев. Ответ: 1024.

Решение через циклы

s1 = ’КТПС’
s2 = ’ОЕ’

k = 0
for a in s1:
    for b in s2:
        for c in s1:
            for d in s2:
                for e in s1:
                    for f in s2:
                        w = a+b+c+d+e+f
                        k += 1

# Чередуем порядок гласных и согласных
for a in s2:
    for b in s1:
        for c in s2:
            for d in s1:
                for e in s2:
                    for f in s1:
                        w = a+b+c+d+e+f
                        k += 1
print(k)

Решение через itertools

from itertools import product

count = set()

gl = ’ОЕ’

for x in product(’КОТПЕС’,repeat = 6):
    s = ’’.join(x)
    if all((s[i] in gl) != (s[i+1] in gl) for i in range(len(s)-1)): # проверка, что нет рядом стоящих гласных и согласных букв
        count.add(s)
print(len(count))

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