Таня составляет слова(не обязательно осмысленные) из букв А, Б, В, Г, Д, Е максимальной(но не обязательно такой) длины 5. Каждую букву можно использовать неограниченное кол-во раз или не использовать совсем. Сколько всего слов может составить Таня, если слово НЕ может начинаться с гласной и НЕ может заканчиваться согласной?
Решение руками
Начнем со слов длины 5: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 6, на четвертое — 6, на пятое — 2 (все гласные).
Слова длины 4: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 6, на четвертое — 2 (все гласные).
Слова длины 3: на 1 место можно поставить 4 буквы (все согласные), на второе — 6, на третье — 2 (все гласные).
Слова длины 2: на 1 место можно поставить 4 буквы (все согласные), на второе — 2 (все гласные).
Меньше букв нельзя, так как мы не выполним условие никак.
Получаем ответ: 4*6*6*6*2 + 4*6*6*2 + 4*6*2 + 4*2 = 2072.
Решение через циклы
a = ’АБВГДЕ’ # наше слово
gl = ’АЕ’ # гласные буквы слова
sogl = ’БВГД’ # согласные буквы слова
count = set()
# двухбуквенные слова
for x1 in sogl:
for x2 in gl:
s = x1+x2
count.add(s)
# трёхбуквенные слова
for x1 in sogl:
for x2 in a:
for x3 in gl:
s = x1+x2+x3
count.add(s)
# четырёхбуквенные слова
for x1 in sogl:
for x2 in a:
for x3 in a:
for x4 in gl:
s = x1+x2+x3+x4
count.add(s)
# пятибуквенные слова
for x1 in sogl:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in gl:
s = x1+x2+x3+x4+x5
count.add(s)
print(len(count))
Решение через itertools
from itertools import product
count = set()
for i in range(2,6):
for x in product(’АБВГДЕ’,repeat = i):
s = ’’.join(x)
if s[0] not in ’АЕ’ and s[-1] in ’АЕ’:
count.add(s)
print(len(count))