Тип 8 № 33753 

Перебор слов и системы счисления.Подсчет количества слов с ограничениями
i
Андрей составляет 6-буквенные коды из букв А, Н, Д, Р, Е, Й. Буква А должна входить в код не менее одного раза, а буква Й — не более одного раза. Сколько различных кодов может составить Андрей?
Решение. Всего слов, в которых буква Й не встречается вовсе, можно составить 5 · 5 · 5 · 5 · 5 · 5 = 15625. Вычтем из этого числа количество слов, в которых не встречается ни буква А, ни буква Й: 15625 − 4 · 4 · 4 · 4 · 4 · 4 = 11529 — это количество слов, в которых буква А встречается хотя бы один раз, а буква Й не встречается.
Всего слов, в которых буква Й встречается один раз на первом месте, равно 1 · 5 · 5 · 5 · 5 · 5. Букву Й можно поставить на первое, второе, третье, четвёртое, пятое и шестое места, значит, всего таких слов 6 · 1 · 5 · 5 · 5 · 5 · 5 = 18750. Всего слов, в которых буква Й встречается один раз на первом месте, а буква А не встречается вообще, равно 1 · 4 · 4 · 4 · 4 · 4. Букву Й можно поставить на первое, второе, третье, четвёртое, пятое и шестое места, значит, всего таких слов 6 · 1 · 4 · 4 · 4 · 4 · 4 = 6144. Таким образом, во втором случае получим 18750 − 6144 = 12606 слов — это количество слов, где буква Й встречается ровно один раз, а буква А встречается хотя бы один раз.
Тогда ответ — 11529 + 12606 = 24135.
Ответ: 24135.
Приведём другое решение на языке 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:
if e.count("А") >= 1 and e.count("Й") <= 1:
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
s = 'АНДРЕЙ'
count = 0
for i1 in s:
for i2 in s:
for i3 in s:
for i4 in s:
for i5 in s:
for i6 in s:
s1 = i1 + i2 + i3 + i4 + i5 + i6
if 'А' in s1 and s1.count('Й') <= 1:
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
from itertools import product
count = 0
for i in product('АНДРЕЙ',repeat=6):
s = ''.join(i)
if 'А' in s and s.count('Й')<=1:
count += 1
print(count)
Ответ: 24135