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

АНАСТАСИЯ из букв своего имени составляет слова перестановкой исходных букв. Сколько различных слов может составить АНАСТАСИЯ, если первая буква не может быть согласной?

На первое место можем поставить только одну из 5 гласных букв, на второе — одну из 8 оставшихся букв, на третье — одну из 7 оставшихся и так далее.

Также результат нужно поделить на 2, так как в слове две буквы С, и на 3, так как в слове три буквы А.

5⋅8⋅7⋅6⋅52⋅⋅43⋅3⋅2⋅1 = 16800

Решение программой (циклы):

s = ’АНТСИЯ’
count = 0
for x1 in s:
    for x2 in s:
        for x3 in s:
            for x4 in s:
                for x5 in s:
                    for x6 in s:
                        for x7 in s:
                            for x8 in s:
                                for x9 in s:
                                    f = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
                                    a = f.count(’А’) == 3
                                    n = f.count(’Н’) == 1
                                    c = f.count(’С’) == 2
                                    t = f.count(’Т’) == 1
                                    i = f.count(’И’) == 1
                                    y = f.count(’Я’) == 1
                                    if a and n and c and t and t and i and y 
                                       and f[0] not in ’НСТ’:
                                        count += 1
print(count)

Решение программой (itertools):

from itertools import permutations

ans = set()
alf = ’АНАСТАСИЯ’

for x in permutations(alf, 9):
    if x[0] not in ’НСТ’:
        ans.add(x)

print(len(ans))

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