Сколько различных семибуквенных кодовых слов можно составить из букв Т, У, Р, И, З, М если в каждом из них буква И встречается не менее 3 раз?
Всего существует =279936 вариантов слов. Количество слов без буквы И равно
=78125. Найдём количество слов с одной буквой И.
Для случая, когда буква И стоит на первом месте, есть 1*5*5*5*5*5*5=15625 вариантов кодов. Так как И может стоять на любом из семи мест, то всего кодов с одной буквой И равно: 15625*7=109375.
Найдём количество слов с двумя буквами И. Всего позиций 7, две из них отводится под букву И, а на оставшихся пяти местах может находиться любая буква из набора: 1*1*5*5*5*5*5=3125. Число перестановок буквы И равно: =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))