Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №4

Даны буквы Ш, К, О, Л, К, О, В, О. Совпадающие буквы считайте разными буквами. Составьте всевозможные различные 8-ми буквенные слова с условием, что каждая буква в слове может встречаться строго один раз и первая и последняя буквы должны быть гласными. Запишите кол-во слов в ответ.

Решение руками

У нас имеется 8  позиций и 8  букв. Каждую букву можно использовать строго один раз. Посчитаем количество вариантов размещения этих букв на 8  позициях (сначала расставим гласные по краям, а затем расставим остальные буквы): 3 ⋅6⋅5 ⋅4 ⋅3⋅2 ⋅1 ⋅2 = 4320  .

Решение через циклы

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)

Ответ: 4320
Оцените статью
Я решу все!