Даны буквы Ш, К, О, Л, К, О, В, О. Совпадающие буквы считайте разными буквами. Составьте всевозможные различные 8-ми буквенные слова с условием, что каждая буква в слове может встречаться строго один раз и первая и последняя буквы должны быть гласными. Запишите кол-во слов в ответ.
Решение руками
У нас имеется позиций и
букв. Каждую букву можно использовать строго один раз. Посчитаем количество вариантов размещения этих букв на
позициях (сначала расставим гласные по краям, а затем расставим остальные буквы):
.
Решение через циклы
a = ’ШКОЛКОВО’ # наше слово
gl = ’О’ # гласные буквы слова
count = 0
# переборы для наших букв
for x1 in gl:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
for x6 in a:
for x7 in a:
for x8 in gl:
s = x1+x2+x3+x4+x5+x6+x7+x8
if all(s.count(i) == a.count(i) for i in s): # проверка, что каждая буква встречается столько же раз, сколько раз записана эта буква в начальном слове
count += 1
print(count)
Решение через itertools
from itertools import permutations
count = 0
for x in permutations(’ШКОЛКОВО’): # проходимся по различным перестановкам букв
s = ’’.join(x)
if s[0] == ’О’ and s[-1] == ’О’: # проверка по условию
count += 1
print(count)