Перебор слов и системы счисления.Подсчет количества слов с ограничениями
i
Андрей составляет 6-буквенные коды из букв А, Н, Д, Р, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Андрей?
Решение. Заметим, что буква Й может встречаться в слове не более одного раза или не встречаться совсем. Рассмотрим два случая.
Пусть буква Й стоит на втором месте. Тогда, поскольку на соседних позициях не может стоять буква Е, количество возможных слов равно 4 · 1 · 4 · 5 · 5 · 5. Также буква Й может стоять на третьем, четвёртом и пятом месте. Значит, всего слов, в которых используется буква Й, 4 · 1 · 4 · 5 · 5 · 5 · 4 = 8000.
Если буква Й не используется, количество возможных слов равно 5 · 5 · 5 · 5 · 5 · 5 = 15625.
Таким образом, всего возможных слов 8000 + 15625 = 23625.
Ответ: 23625.
Приведём другое решение на языке Python.
import itertools
alphabet = "АНДРЕЙ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторениями
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if e.count('Й') > 1 or e[0] == 'Й' or e[-1] == 'Й' or (e[i] == 'Й' and e[i + 1] == 'Е') or (e[i + 1] == 'Й' and e[i] == 'Е'):