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

Сколько различных семибуквенных кодовых слов можно составить из букв Т, У, Р, И, З, М если в каждом из них буква И встречается не менее 3 раз?

Всего существует 67  =279936 вариантов слов. Количество слов без буквы И равно 57  =78125. Найдём количество слов с одной буквой И.

Для случая, когда буква И стоит на первом месте, есть 1*5*5*5*5*5*5=15625 вариантов кодов. Так как И может стоять на любом из семи мест, то всего кодов с одной буквой И равно: 15625*7=109375.

Найдём количество слов с двумя буквами И. Всего позиций 7, две из них отводится под букву И, а на оставшихся пяти местах может находиться любая буква из набора: 1*1*5*5*5*5*5=3125. Число перестановок буквы И равно: 7∗6  2!  =21. Общее число слов с двумя буквами И: 3125*21=65625.

Так как нам нужно найти количество слов с тремя и более буквами И, то нам достаточно из всех вариантов вычесть слова без буквы И, слова с одной буквой И и слова с двумя буквами И:

279936-78125-109375-65625=26811 слов.

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

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.count(’И’) >= 3:
                                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.count(’И’) >= 3:
        ans.add(w)
print(len(ans))

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