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

Рита составляет семибуквенные кодовые слова из букв Д,И,А,М,Е,Т,Р. Каждую букву можно использовать любое количество раз. При этом слово может начинаться только с гласной буквы, а заканчивается только сочетанием букв МИ, а также слово должно содержать хотя бы одно сочетания букв ЕР и не содержать сочетания букв АДТ. Сколько таких слов может составить Рита?

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

ans = set()
alf = ’ДИАМЕТР’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        for x7 in alf:
                            w = x1 + x2 + x3 + x4 + x5 + x6 + x7
                            if w[0] in ’ИАЕ’ and w[-2:] == ’МИ’ and ’ЕР’ in w and ’АДТ’ not in w:
                                ans.add(w)
print(len(ans))

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

from itertools import product

ans = set()
alf = ’ДИАМЕТР’

for w in product(alf, repeat=7):
    w = ’’.join(w)
    if w[0] in ’ИАЕ’ and w[-2:] == ’МИ’ and ’ЕР’ in w and ’АДТ’ not in w:
        ans.add(w)
print(len(ans))

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