Сколько различных семибуквенных кодовых слов можно составить из букв К,О,Т,Е,Л, если в каждом из них буква Т встречается не менее 3 раз?
Решение руками
Всего существует вариантов кодовых слов.
1. Найдем количество слов без буквы Т, в таком случае у нас есть набор из четырех букв на семь мест .
2. Найдем количество слов с одной буквой Т:
Т * * * * * * на месте * может быть любая буква из набора К,О,Е,Л:
Т 4 4 4 4 4 4
варианта для случая, когда буква Т стоит на первом месте. Она может стоять на любом из семи мест, следовательно,
= 28672 слова с одной буквой Т.
3. Найдем количество слов с двумя буквами Т:
Т Т * * * * * на месте * может быть любая буква из набора К,О,Е,Л: Т Т 4 4 4 4 4
вариантов слов, когда буква Т стоит на первой и второй позиции. Теперь нужно найти количество перестановок двух букв Т, это считается по формуле:
перестановка, где 7 — это сколькими способами мы можем выбрать место для первой буквы Т, 6 — сколькими способами мы можем выбрать место для второй буквы Т(6, так как одно место уже занято), поэтому всего вариантов
, но так как буквы одинаковые, то нужно поделить еще на 2!, чтобы исключить повторение. Тогда общее количество слов:
.
Так как нам нужно найти количество слов с тремя и более буквами Т, то нам достаточно из всех вариантов вычесть слова без буквы Т, слова с одной буквой Т и слова с двумя буквами Т:
слов.
Решение через циклы
s = ’КОТЕЛ’
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
for g in s:
w = a+b+c+d+e+f+g
if w.count(’Т’) >= 3:
k += 1
print(k)
Решение через itertools
from itertools import product
count = set()
for x in product(’КОТЕЛ’,repeat = 7):
s = ’’.join(x)
if s.count(’Т’) >= 3:
count.add(s)
print(len(count))