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

Таня составляет слова(не обязательно осмысленные) из букв А, Б, В, Г, Д, Е максимальной(но не обязательно такой) длины 5. Каждую букву можно использовать неограниченное кол-во раз или не использовать совсем. Сколько всего слов может составить Таня, если слово НЕ может начинаться с гласной и НЕ может заканчиваться согласной?

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

Начнем со слов длины 5: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 6, на четвертое — 6, на пятое — 2 (все гласные).

Слова длины 4: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 6, на четвертое — 2 (все гласные).

Слова длины 3: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 2 (все гласные).

Слова длины 2: на 1 место можно поставить 4 буквы (все согласные), на второе — 2 (все гласные).

Меньше букв нельзя, так как мы не выполним условие никак.

Получаем ответ: 4*6*6*6*2 + 4*6*6*2 + 4*6*2 + 4*2 = 2072.

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

a = ’АБВГДЕ’ # наше слово
gl = ’АЕ’ # гласные буквы слова
sogl = ’БВГД’ # согласные буквы слова
count = set()
# двухбуквенные слова
for x1 in sogl:
    for x2 in gl:
        s = x1+x2
        count.add(s)
# трёхбуквенные слова
for x1 in sogl:
    for x2 in a:
        for x3 in gl:
            s = x1+x2+x3
            count.add(s)
# четырёхбуквенные слова
for x1 in sogl:
    for x2 in a:
        for x3 in a:
            for x4 in gl:
                s = x1+x2+x3+x4
                count.add(s)
# пятибуквенные слова
for x1 in sogl:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in gl:
                    s = x1+x2+x3+x4+x5
                    count.add(s)
print(len(count))

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

from itertools import product

count = set()
for i in range(2,6):
    for x in product(’АБВГДЕ’,repeat = i):
        s = ’’.join(x)
        if s[0] not in ’АЕ’ and s[-1] in ’АЕ’:
            count.add(s)
print(len(count))

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